This document outlines useful information for ops and dev transfer as it relates to infrastructure that utilizes Podman
.
Podman is a tool for managing Pods, Containers, and Container Images. The CLI for Podman is based on the Docker CLI, although Podman does not require a runtime daemon to be running in order to function. Podman also supports the Docker API via the Podman socket activated system service.
Many traditional tools will still be useful, such as pstree
, nsenter
and lsns
.
As well as some systemd helpers like systemd-cgls
and systemd-cgtop
are still just as applicable.
For many troubleshooting and information collection steps, there may be an existing pattern.
Following provides equivalent with Podman
tools for gathering information or jumping into containers, for operational use.
There are other equivalents for these tools
Existing Step | Podman (and friends) |
---|---|
docker |
podman |
docker attach |
podman attach |
docker auto-update |
podman auto-update |
docker build |
podman build |
docker commit |
podman commit |
docker container |
podman container |
docker container prune |
podman container prune |
docker cp |
podman cp |
docker create |
podman create |
docker diff |
podman diff |
docker events |
podman events |
docker exec |
podman exec |
docker export |
podman export |
docker history |
podman history |
docker image |
podman image |
docker images |
podman images |
docker import |
podman import |
docker info |
podman info |
docker inspect |
podman inspect |
docker kill |
podman kill |
docker load |
podman load |
docker login |
podman login |
docker logout |
podman logout |
docker logs |
podman logs |
docker manifest |
podman manifest |
docker manifest annotate |
podman manifest annotate |
docker manifest create |
podman manifest create |
docker manifest inspect |
podman manifest inspect |
docker manifest push |
podman manifest push |
docker manifest rm |
podman manifest rm |
docker network |
podman network |
docker network connect |
podman network connect |
docker network create |
podman network create |
docker network disconnect |
podman network disconnect |
docker network inspect |
podman network inspect |
docker network ls |
podman network ls |
docker network rm |
podman network rm |
docker pause |
podman pause |
docker port |
podman port |
docker ps |
podman ps |
docker pull |
podman pull |
docker push |
podman push |
docker rename |
podman rename |
docker restart |
podman restart |
docker rm |
podman rm |
docker rmi |
podman rmi |
docker run |
podman run |
docker save |
podman save |
docker search |
podman search |
docker secret |
podman secret |
docker secret create |
podman secret |
docker secret inspect |
podman secret |
docker secret ls |
podman secret |
docker secret rm |
podman secret |
docker service |
podman service |
docker start |
podman start |
docker stats |
podman stats |
docker stop |
podman stop |
docker system |
podman system |
docker system df |
podman system df |
docker system events |
podman system events |
docker system info |
podman system info |
docker system prune |
podman system prune |
docker tag |
podman tag |
docker top |
podman top |
docker unpause |
podman unpause |
docker version |
podman version |
docker volume |
podman volume |
docker volume create |
podman volume create |
docker volume inspect |
podman volume inspect |
docker volume ls |
podman volume ls |
docker volume prune |
podman volume prune |
docker volume rm |
podman volume rm |
docker wait |
podman wait |
These commands behave differently from the commands in Docker:
Command | Description |
---|---|
podman volume create |
While docker volume create is idempotent, podman volume create raises an error if the volume does already exist. See this docker issue for more information. |
podman run -v /tmp/noexist:/tmp ... |
While docker run -v /tmp/noexist:/tmp will create non existing volumes on the host, Podman will report that the volume does not exist. The Podman team sees this as a bug in Docker. |
Those Docker commands currently do not have equivalents in podman
:
Missing command | Description |
---|---|
docker builder |
|
docker buildx |
|
docker config |
|
docker context |
|
docker container update |
podman does not support altering running containers. We recommend recreating containers with the correct arguments. |
docker node |
|
docker plugin |
podman does not support plugins. We recommend you use alternative OCI Runtimes or OCI Runtime Hooks to alter behavior of podman. |
docker stack |
|
docker swarm |
podman does not support swarm. We support Kubernetes for orchestration using CRI-O. |
docker trust |
podman image trust |
docker update |
The following podman commands do not have a Docker equivalent:
podman container checkpoint
podman container cleanup
podman container exists
podman container refresh
podman container restore
podman container runlabel
podman generate
podman generate kube
podman generate systemd
podman healthcheck
podman healthcheck run
podman image diff
podman image exists
podman image mount
podman image prune
podman image sign
podman image tree
podman image trust
podman image unmount
podman init
podman machine
podman machine init
podman machine list
podman machine rm
podman machine ssh
podman machine start
podman machine stop
podman manifest add
podman manifest exists
podman manifest remove
podman mount
podman network exists
podman network prune
podman network reload
podman play
podman play kube
podman pod
podman pod create
podman pod exists
podman pod inspect
podman pod kill
podman pod pause
podman pod prune
podman pod ps
podman pod restart
podman pod rm
podman pod start
podman pod stats
podman pod stop
podman pod top
podman pod unpause
podman system connection
podman system connection add
podman system connection default
podman system connection list
podman system connection remove
podman system connection rename
podman system migrate
podman system renumber
podman system reset
podman system service
podman unmount
podman unshare
podman untag
podman volume exists