Project: Podman (App Definition and Development / Application Definition & Image Build)
File: transfer.md

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

There are other equivalents for these tools | Existing Step | `Podman` (and friends) | | : | : | | `docker ` | | | `docker attach` | | | `docker auto-update`|| | `docker build` | | | `docker commit` | | | `docker container `| | | `docker container prune`| | | `docker cp` | | | `docker create` | | | `docker diff` | | | `docker events` | | | `docker exec` | | | `docker export` | | | `docker history` | | | `docker image` | | | `docker images` | | | `docker import` | | | `docker info` | | | `docker inspect` | | | `docker kill` | | | `docker load` | | | `docker login` | | | `docker logout` | | | `docker logs` | | | `docker manifest `| | | `docker manifest annotate` | | | `docker manifest create` | | | `docker manifest inspect`| | | `docker manifest push` | | | `docker manifest rm` | | | `docker network ` | | | `docker network connect` | | | `docker network create` | | | `docker network disconnect`| | | `docker network inspect` | | | `docker network ls` | | | `docker network rm` | | | `docker pause` | | | `docker port` | | | `docker ps` | | | `docker pull` | | | `docker push` | | | `docker rename` | | | `docker restart` | | | `docker rm` | | | `docker rmi` | | | `docker run` | | | `docker save` | | | `docker search` | | | `docker secret ` | | | `docker secret create` | | | `docker secret inspect` | | | `docker secret ls` | | | `docker secret rm` | | | `docker service` | | | `docker start` | | | `docker stats` | | | `docker stop` | | | `docker system ` | | | `docker system df` | | | `docker system events` | | | `docker system info` | | | `docker system prune` | | | `docker tag` | | | `docker top` | | | `docker unpause` | | | `docker version` | | | `docker volume `| | | `docker volume create` | | | `docker volume inspect`| | | `docker volume ls` | | | `docker volume prune` | | | `docker volume rm` | | | `docker 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 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