Whilst tinkering with podman today, I saw this: -
podman images
Cannot connect to Podman. Please verify your connection to the Linux system using `podman system connection list`, or try `podman machine init` and `podman machine start` to manage a new Linux VM
Error: unable to connect to Podman socket: server API version is too old. Client "4.0.0" server "3.4.4"
I tried: -
podman system connection list
which returned: -
Name URI Identity Default
podman-machine-default ssh://core@localhost:58173/run/user/1000/podman/podman.sock /Users/hayd/.ssh/podman-machine-default true
podman-machine-default-root ssh://root@localhost:58173/run/podman/podman.sock /Users/hayd/.ssh/podman-machine-default false
which wasn't terribly useful, and then checked the machine: -
podman machine list
NAME VM TYPE CREATED LAST UP CPUS MEMORY DISK SIZE
podman-machine-default* qemu 2 weeks ago Currently running 1 2.147GB 10.74GB
Having checked versions: -
podman --version
podman version 4.0.2
I tried restarting the machine: -
podman machine stop
Machine "podman-machine-default" stopped successfully
podman machine start
Starting machine "podman-machine-default"
INFO[0000] waiting for clients...
INFO[0000] new connection from to /var/folders/b5/8vqr9tt54v94jxzs0_k2qq2m0000gn/T/podman/qemu_podman-machine-default.sock
Waiting for VM ...
INFO[0012] Socket forward established: /Users/hayd/.local/share/containers/podman/machine/podman-machine-default/podman.sock to /run/user/0/podman/podman.sock
ERRO[0013] Couldn't restablish ssh tunnel on path: /run/user/0/podman/podman.sock: ssh: rejected: connect failed (open failed)
WARN[0013] API socket failed ping test
This machine is currently configured in rootless mode. If your containers
require root permissions (e.g. ports < 1024), or if you run into compatibility
issues with non-podman clients, you can switch using the following command:
podman machine set --rootful
API forwarding listening on: /Users/hayd/.local/share/containers/podman/machine/podman-machine-default/podman.sock
The system helper service is not installed; the default Docker API socket
address can't be used by podman. If you would like to install it run the
following command:
sudo /usr/local/Cellar/podman/4.0.2/bin/podman-mac-helper install
You can still connect Docker API clients by setting DOCKER_HOST using the
following command in your terminal session:
export DOCKER_HOST='unix:///Users/hayd/.local/share/containers/podman/machine/podman-machine-default/podman.sock'
Machine "podman-machine-default" started successfully
but still saw the same issue: -
podman images
Cannot connect to Podman. Please verify your connection to the Linux system using `podman system connection list`, or try `podman machine init` and `podman machine start` to manage a new Linux VM
Error: unable to connect to Podman socket: server API version is too old. Client "4.0.0" server "3.4.4"
I've installed podman via Homebrew: -
brew info podman
podman: stable 4.0.2 (bottled), HEAD
Tool for managing OCI containers and pods
https://podman.io/
/usr/local/Cellar/podman/4.0.2 (172 files, 48.7MB) *
Poured from bottle on 2022-03-15 at 12:23:57
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/podman.rb
License: Apache-2.0
==> Dependencies
Build: go ✘, go-md2man ✘
Required: qemu ✔
==> Options
--HEAD
Install HEAD version
==> Caveats
zsh completions have been installed to:
/usr/local/share/zsh/site-functions
==> Analytics
install: 10,898 (30 days), 36,534 (90 days), 104,199 (365 days)
install-on-request: 10,891 (30 days), 36,516 (90 days), 104,182 (365 days)
build-error: 13 (30 days)
Nothing was terribly informative, so I chose to nuke the machine: -
podman machine rm
The following files will be deleted:
/Users/hayd/.ssh/podman-machine-default
/Users/hayd/.ssh/podman-machine-default.pub
/Users/hayd/.config/containers/podman/machine/qemu/podman-machine-default.ign
/Users/hayd/.local/share/containers/podman/machine/qemu/podman-machine-default_fedora-coreos-35.20220213.2.0-qemu.x86_64.qcow2
/Users/hayd/.config/containers/podman/machine/qemu/podman-machine-default.json
Are you sure you want to continue? [y/N] y
and create a new one: -
podman machine init
Downloading VM image: fedora-coreos-35.20220305.dev.0-qemu.x86_64.qcow2.xz: done
Extracting compressed file
Image resized.
Machine init complete
To start your machine run:
podman machine start
podman machine start
Starting machine "podman-machine-default"
INFO[0000] waiting for clients...
INFO[0000] new connection from to /var/folders/b5/8vqr9tt54v94jxzs0_k2qq2m0000gn/T/podman/qemu_podman-machine-default.sock
Waiting for VM ...
INFO[0018] Socket forward established: /Users/hayd/.local/share/containers/podman/machine/podman-machine-default/podman.sock to /run/user/501/podman/podman.sock
This machine is currently configured in rootless mode. If your containers
require root permissions (e.g. ports < 1024), or if you run into compatibility
issues with non-podman clients, you can switch using the following command:
podman machine set --rootful
API forwarding listening on: /Users/hayd/.local/share/containers/podman/machine/podman-machine-default/podman.sock
The system helper service is not installed; the default Docker API socket
address can't be used by podman. If you would like to install it run the
following command:
sudo /usr/local/Cellar/podman/4.0.2/bin/podman-mac-helper install
You can still connect Docker API clients by setting DOCKER_HOST using the
following command in your terminal session:
export DOCKER_HOST='unix:///Users/hayd/.local/share/containers/podman/machine/podman-machine-default/podman.sock'
Machine "podman-machine-default" started successfully
and then: -
podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
which looked better.
I started a container: -
podman run -it alpine:latest sh
Resolved "alpine" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
Trying to pull docker.io/library/alpine:latest...
Getting image source signatures
Copying blob sha256:59bf1c3509f33515622619af21ed55bbe26d24913cedbca106468a5fb37a50c3
Copying blob sha256:59bf1c3509f33515622619af21ed55bbe26d24913cedbca106468a5fb37a50c3
Copying config sha256:c059bfaa849c4d8e4aecaeb3a10c2d9b3d85f5165c66ad3a4d937758128c4d18
Writing manifest to image destination
Storing signatures
/ # uname -a
Linux c4367a60c3d4 5.15.18-200.fc35.x86_64 #1 SMP Sat Jan 29 13:54:17 UTC 2022 x86_64 Linux
/ # exit
and then re-checked the downloaded images: -
podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/alpine latest c059bfaa849c 3 months ago 5.87 MB
podman version
Client: Podman Engine
Version: 4.0.2
API Version: 4.0.2
Go Version: go1.17.8
Built: Wed Mar 2 14:04:36 2022
OS/Arch: darwin/amd64
Server: Podman Engine
Version: 4.0.2
API Version: 4.0.2
Go Version: go1.16.14
Built: Thu Mar 3 14:56:56 2022
OS/Arch: linux/amd64