Podman Operations
External
Internal
Installation
Mac
brew install podman
Linux
dnf install -y podman && dnf clean all
podman --version
Version
podman --version
Podman Virtual Machine Operations
Podman Virtual Machine Initialization
Podman on MacOS requires a virtual machine. This is because containers must run with a Linux kernel, and the Podman virtual machine provides that kernel.
podman machine init
initializes a new Linux VM where the containers are run.
For more details, see
Start Virtual Machine
Once the VM is initialized, it must be stared with:
podman machine start
Install System Helper
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 commands:
sudo /opt/brew/Cellar/podman/4.2.1/bin/podman-mac-helper install podman machine stop; podman machine start
This solved this issue:
podman build -f common/docker/Dockerfile [...] 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. failed to create sshClient: connection to bastion host (ssh://core@localhost:61201/run/user/501/podman/podman.sock) failed: dial tcp [::1]:61201: connect: connection refused
You can still connect Docker API clients by setting DOCKER_HOST using the following command in your terminal session:
export DOCKER_HOST='unix:///Users/ovidiu/.local/share/containers/podman/machine/podman-machine-default/podman.sock'
To get around this, kill qemu
and re-start the machine:
ps -ef | grep qemu
kill -9 <qemu-pid>
podman machine start
Stop Virtual Machine
podman machine stop
Remove a Virtual Machine
podman machine rm
Display Virtual Machine Information
podman machine info
Inspect a Virtual Machine
podman machine inspect
List Virtual Machines
podman machine list
Configure a Virtual Machine
podman machine set
ssh Into a Virtual Machine
podman machine ssh
Podman Image Operations
Pull an Image from a Registry
podman pull docker.someorg.com/some-department/some-image:0.1.0
The image will be cached locally and can be listed with podman images
List Local Images
podman images
Remove Images from Local Storage
podman rmi [-f] <image-id>
Build Container Images
Podman Container Operations
Run a Container
podman run -it [--rm] --entrypoint bash <some-image>
Get a Container ID
podman ps --filter "name=dev-consul" --format "{{.ID}}"
More details on --filter
: https://docs.podman.io/en/stable/markdown/podman-ps.1.html#filter-f
Troubleshooting
https://www.redhat.com/sysadmin/container-permission-denied-errors