podman/transfer.md

14 KiB

PODMAN logo

Podman Usage Transfer

This document outlines useful information for ops and dev transfer as it relates to infrastructure that utilizes Podman.

Operational Transfer

Abstract

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.

System Tools

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.

Equivalents

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.

Development Transfer

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

Behavioural differences and pitfalls

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.

Missing commands in podman

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

Missing commands in Docker

The following podman commands do not have a Docker equivalent: