Podman
Basics
Registry file: /etc/containers/registries.conf
Login to a registry
podman login registry.access.redhat.com
Search for images
podman search mariadb
Inspect images without downloading
skopeo inspect docker://registry.access.redhat.com/rhscl/mariadb-102-rhel7
Download images
podman pull registry.access.redhat.com/rhscl/mariadb-102-rhel7
List local images
podman images
Start a container based on an image ID. Get the ID from docker images.
podman run --name apache bitnami/apache
control-c will stop the container for all of the run commands.
Start an image based on a tag detached
podman run -d --name apache bitnami/apache:2.4.52
Start the an app with port forwarding
podman run -it -p 8080:8080 bitnami/apache
Get running images
podman ps
Get all images
podman ps -all
Enter container in interactive shell
podman exec -it container-name /bin/bash
Commit changes to running image
podman commit container-name image-name
Check container logs
podman logs <Container Name>
podman logs -f <Container Name> # Follow the logs
podman logs --tail=25 <Container Name> # Last n lines
Stop a running image. The container ID will be in the podman ps
output.
podman kill <Container ID>
Remove an image. The container ID will be in the podman ps
output.
podman rm <Container ID>
Remove all images.
podman rmi --all --force
Export image
podman save image-name > /path/to/image.tar
Restore/Load image
podman load -i /path/to/image.tar
Parameters and Volumes
Create a container mount point
sudo mkdir /srv/mariadb
sudo chown -R 27:27 /srv/mariadb # UID found in podman inspect
sudo semanage fcontext -m -t container_file_t "/srv/mariadb(/.*)"
sudo restorecon -Rv /srv/mariadb
Run image
-d detached
-e per variable
-p local_port:container_port
-v local/path:/path/in/pod
podman run -d -e MYSQL_USER=user \
-e MYSQL_PASSWORD=pass -e MYSQL_DATABASE=db \
-p 33306:3306 rhscl/mariadb-102-rhel7 \
-v /srv/mariadb:/var/lib/mysql:Z # :Z isn't needed if SELinux manually configured