Podman Operations

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

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

https://docs.podman.io/en/latest/markdown/podman-machine-init.1.html#

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

Podman Virtual Machine

Start Virtual Machine

https://docs.podman.io/en/latest/markdown/podman-machine-start.1.html

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'

Error: qemu exited unexpectedly with exit code 1, stderr: qemu-system-x86_64: cannot create PID file: Cannot lock pid file: Resource temporarily unavailable

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

Build Container Images with podman

Podman Container Operations

Run a Container

docker run
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