github.com/containers/podman/v5@v5.1.0-rc1/transfer.md (about)

     1  ![PODMAN logo](https://raw.githubusercontent.com/containers/common/main/logos/podman-logo-full-vert.png)
     2  # Podman Usage Transfer
     3  
     4  This document outlines useful information for ops and dev transfer as it relates to infrastructure that utilizes `Podman`.
     5  
     6  ## Operational Transfer
     7  
     8  ## Abstract
     9  
    10  Podman is a tool for managing Pods, Containers, and Container Images.  The CLI
    11  for Podman is based on the Docker CLI, although Podman does not require a
    12  runtime daemon to be running in order to function. Podman also supports the Docker API via the Podman socket activated system service.
    13  
    14  ## System Tools
    15  
    16  Many traditional tools will still be useful, such as `pstree`, `nsenter` and `lsns`.
    17  As well as some systemd helpers like `systemd-cgls` and `systemd-cgtop` are still just as applicable.
    18  
    19  ## Equivalents
    20  
    21  For many troubleshooting and information collection steps, there may be an existing pattern.
    22  Following provides equivalent with `Podman` tools for gathering information or jumping into containers, for operational use.
    23  
    24  ## Development Transfer
    25  
    26  There are other equivalents for these tools
    27  
    28  | Existing Step | `Podman` (and friends) |
    29  | :--- | :--- |
    30  | `docker `        | [`podman`](./docs/source/markdown/podman.1.md)                  |
    31  | `docker attach`  | [`podman attach`](./docs/source/markdown/podman-attach.1.md)    |
    32  | `docker auto-update`|[`podman auto-update`](./docs/source/markdown/podman-auto-update.1.md)|
    33  | `docker build`   | [`podman build`](./docs/source/markdown/podman-build.1.md)      |
    34  | `docker commit`  | [`podman commit`](./docs/source/markdown/podman-commit.1.md)    |
    35  | `docker container `|[`podman container`](./docs/source/markdown/podman-container.1.md) |
    36  | `docker container prune`|[`podman container prune`](./docs/source/markdown/podman-container-prune.1.md) |
    37  | `docker cp`      | [`podman cp`](./docs/source/markdown/podman-cp.1.md)            |
    38  | `docker create`  | [`podman create`](./docs/source/markdown/podman-create.1.md)    |
    39  | `docker diff`    | [`podman diff`](./docs/source/markdown/podman-diff.1.md)        |
    40  | `docker events`  | [`podman events`](./docs/source/markdown/podman-events.1.md)    |
    41  | `docker exec`    | [`podman exec`](./docs/source/markdown/podman-exec.1.md)        |
    42  | `docker export`  | [`podman export`](./docs/source/markdown/podman-export.1.md)    |
    43  | `docker history` | [`podman history`](./docs/source/markdown/podman-history.1.md)  |
    44  | `docker image`   | [`podman image`](./docs/source/markdown/podman-image.1.md)      |
    45  | `docker images`  | [`podman images`](./docs/source/markdown/podman-images.1.md)    |
    46  | `docker import`  | [`podman import`](./docs/source/markdown/podman-import.1.md)    |
    47  | `docker info`    | [`podman info`](./docs/source/markdown/podman-info.1.md)        |
    48  | `docker inspect` | [`podman inspect`](./docs/source/markdown/podman-inspect.1.md)  |
    49  | `docker kill`    | [`podman kill`](./docs/source/markdown/podman-kill.1.md)        |
    50  | `docker load`    | [`podman load`](./docs/source/markdown/podman-load.1.md)        |
    51  | `docker login`   | [`podman login`](./docs/source/markdown/podman-login.1.md)      |
    52  | `docker logout`  | [`podman logout`](./docs/source/markdown/podman-logout.1.md)    |
    53  | `docker logs` | [`podman logs`](./docs/source/markdown/podman-logs.1.md)           |
    54  | `docker manifest `| [`podman manifest`](./docs.source/markdown/podman-manifest.1.md)           |
    55  | `docker manifest annotate`  | [`podman manifest annotate`](./docs/source/markdown/podman-manifest-annotate.1.md)   |
    56  | `docker manifest create` | [`podman manifest create`](./docs/source/markdown/podman-manifest-create.1.md)   |
    57  | `docker manifest inspect`| [`podman manifest inspect`](./docs/source/markdown/podman-manifest-inspect.1.md) |
    58  | `docker manifest push`   | [`podman manifest push`](./docs/source/markdown/podman-manifest-push.1.md)       |
    59  | `docker manifest rm`     | [`podman manifest rm`](./docs.source/markdown/podman-manifest-rm.1.md)           |
    60  | `docker network `        | [`podman network`](./docs.source/markdown/podman-network.1.md)                   |
    61  | `docker network connect` | [`podman network connect`](./docs/source/markdown/podman-network-connect.1.md)   |
    62  | `docker network create`  | [`podman network create`](./docs/source/markdown/podman-network-create.1.md)     |
    63  | `docker network disconnect`| [`podman network disconnect`](./docs/source/markdown/podman-network-disconnect.1.md)|
    64  | `docker network inspect` | [`podman network inspect`](./docs/source/markdown/podman-network-inspect.1.md)   |
    65  | `docker network ls`      | [`podman network ls`](./docs/source/markdown/podman-network-ls.1.md)             |
    66  | `docker network rm`      | [`podman network rm`](./docs.source/markdown/podman-network-rm.1.md)             |
    67  | `docker pause`   | [`podman pause`](./docs/source/markdown/podman-pause.1.md)      |
    68  | `docker port`    | [`podman port`](./docs/source/markdown/podman-port.1.md)        |
    69  | `docker ps`      | [`podman ps`](./docs/source/markdown/podman-ps.1.md)            |
    70  | `docker pull`    | [`podman pull`](./docs/source/markdown/podman-pull.1.md)        |
    71  | `docker push`    | [`podman push`](./docs/source/markdown/podman-push.1.md)        |
    72  | `docker rename`  | [`podman rename`](./docs/source/markdown/podman-rename.1.md)    |
    73  | `docker restart` | [`podman restart`](./docs/source/markdown/podman-restart.1.md)  |
    74  | `docker rm`      | [`podman rm`](./docs/source/markdown/podman-rm.1.md)            |
    75  | `docker rmi`     | [`podman rmi`](./docs/source/markdown/podman-rmi.1.md)          |
    76  | `docker run`     | [`podman run`](./docs/source/markdown/podman-run.1.md)          |
    77  | `docker save`    | [`podman save`](./docs/source/markdown/podman-save.1.md)        |
    78  | `docker search`  | [`podman search`](./docs/source/markdown/podman-search.1.md)    |
    79  | `docker secret ` | [`podman secret`](./docs/source/markdown/podman-secret.1.md)    |
    80  | `docker secret create`  | [`podman secret`](./docs/source/markdown/podman-secret-create.1.md)  |
    81  | `docker secret inspect`  | [`podman secret`](./docs/source/markdown/podman-secret-inspect.1.md)|
    82  | `docker secret ls`  | [`podman secret`](./docs/source/markdown/podman-secret-ls.1.md)|
    83  | `docker secret rm`  | [`podman secret`](./docs/source/markdown/podman-secret-rm.1.md)|
    84  | `docker service` | [`podman service`](./docs/source/markdown/podman-service.1.md)  |
    85  | `docker start`   | [`podman start`](./docs/source/markdown/podman-start.1.md)      |
    86  | `docker stats`   | [`podman stats`](./docs/source/markdown/podman-stats.1.md)      |
    87  | `docker stop`    | [`podman stop`](./docs/source/markdown/podman-stop.1.md)        |
    88  | `docker system ` | [`podman system`](./docs/source/markdown/podman-system.1.md)    |
    89  | `docker system df`     | [`podman system df`](./docs/source/markdown/podman-system-df.1.md)      |
    90  | `docker system events`   | [`podman system events`](./docs/source/markdown/podman-events.1.md)  |
    91  | `docker system info`   | [`podman system info`](./docs/source/markdown/podman-system-info.1.md)  |
    92  | `docker system prune`  | [`podman system prune`](./docs/source/markdown/podman-system-prune.1.md)|
    93  | `docker tag`     | [`podman tag`](./docs/source/markdown/podman-tag.1.md)          |
    94  | `docker top`     | [`podman top`](./docs/source/markdown/podman-top.1.md)          |
    95  | `docker unpause` | [`podman unpause`](./docs/source/markdown/podman-unpause.1.md)  |
    96  | `docker version` | [`podman version`](./docs/source/markdown/podman-version.1.md)  |
    97  | `docker volume        `| [`podman volume`](./docs/source/markdown/podman-volume.1.md)		       |
    98  | `docker volume create` | [`podman volume create`](./docs/source/markdown/podman-volume-create.1.md)  |
    99  | `docker volume inspect`| [`podman volume inspect`](./docs/source/markdown/podman-volume-inspect.1.md)|
   100  | `docker volume ls`     | [`podman volume ls`](./docs/source/markdown/podman-volume-ls.1.md)          |
   101  | `docker volume prune`  | [`podman volume prune`](./docs/source/markdown/podman-volume-prune.1.md)    |
   102  | `docker volume rm`     | [`podman volume rm`](./docs/source/markdown/podman-volume-rm.1.md)          |
   103  | `docker wait`          | [`podman wait`](./docs/source/markdown/podman-wait.1.md)		       |
   104  
   105  ## Behavioural differences and pitfalls
   106  
   107  These commands behave differently from the commands in Docker:
   108  
   109  | Command | Description |
   110  | :--- | :--- |
   111  | `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](https://github.com/moby/moby/issues/16068) for more information.|
   112  | `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.|
   113  
   114  ## Missing commands in podman
   115  
   116  Those Docker commands currently do not have equivalents in `podman`:
   117  
   118  | Missing command | Description|
   119  | :--- | :--- |
   120  | `docker builder`  ||
   121  | `docker buildx`   ||
   122  | `docker config`   ||
   123  | `docker context`  ||
   124  | `docker container update`  | podman does not support altering running containers. We recommend recreating containers with the correct arguments.|
   125  | `docker node`     ||
   126  | `docker plugin`   | podman does not support plugins.  We recommend you use alternative OCI Runtimes or OCI Runtime Hooks to alter behavior of podman.|
   127  | `docker stack`    ||
   128  | `docker swarm`    | podman does not support swarm.  We support Kubernetes for orchestration using [CRI-O](https://github.com/cri-o/cri-o).|
   129  | `docker trust`    |[`podman image trust`](./docs/source/markdown/podman-image-trust.1.md)          |
   130  | `docker update`   ||
   131  
   132  ## Missing commands in Docker
   133  
   134  The following podman commands do not have a Docker equivalent:
   135  
   136  * [`podman container checkpoint`](/docs/source/markdown/podman-container-checkpoint.1.md)
   137  * [`podman container cleanup`](/docs/source/markdown/podman-container-cleanup.1.md)
   138  * [`podman container exists`](/docs/source/markdown/podman-container-exists.1.md)
   139  * [`podman container refresh`](/docs/source/markdown/podman-container-refresh.1.md)
   140  * [`podman container restore`](/docs/source/markdown/podman-container-restore.1.md)
   141  * [`podman container runlabel`](/docs/source/markdown/podman-container-runlabel.1.md)
   142  * [`podman generate `](./docs/source/markdown/podman-generate.1.md)
   143  * [`podman generate kube`](./docs/source/markdown/podman-generate-kube.1.md)
   144  * [`podman generate systemd`](./docs/source/markdown/podman-generate-systemd.1.md)
   145  * [`podman healthcheck `](/docs/source/markdown/podman-healthcheck.1.md)
   146  * [`podman healthcheck run`](/docs/source/markdown/podman-healthcheck-run.1.md)
   147  * [`podman image diff`](./docs/source/markdown/podman-image-diff.1.md)
   148  * [`podman image exists`](./docs/source/markdown/podman-image-exists.1.md)
   149  * [`podman image mount`](./docs/source/markdown/podman-image-mount.1.md)
   150  * [`podman image prune`](./docs/source/markdown/podman-image-prune.1.md)
   151  * [`podman image sign`](./docs/source/markdown/podman-image-sign.1.md)
   152  * [`podman image tree`](./docs/source/markdown/podman-image-tree.1.md)
   153  * [`podman image trust`](./docs/source/markdown/podman-image-trust.1.md)
   154  * [`podman image unmount`](./docs/source/markdown/podman-image-unmount.1.md)
   155  * [`podman init`](./docs/source/markdown/podman-init.1.md)
   156  * [`podman machine `](./docs/source/markdown/podman-machine.1.md)
   157  * [`podman machine init`](./docs/source/markdown/podman-machine-init.1.md)
   158  * [`podman machine list`](./docs/source/markdown/podman-machine-list.1.md)
   159  * [`podman machine rm`](./docs/source/markdown/podman-machine-rm.1.md)
   160  * [`podman machine ssh`](./docs/source/markdown/podman-machine-ssh.1.md)
   161  * [`podman machine start`](./docs/source/markdown/podman-machine-start.1.md)
   162  * [`podman machine stop`](./docs/source/markdown/podman-machine-stop.1.md)
   163  * [`podman manifest add`](./docs/source/markdown/podman-manifest-add.1.md)
   164  * [`podman manifest exists`](./docs/source/markdown/podman-manifest-exists.1.md)
   165  * [`podman manifest remove`](./docs/source/markdown/podman-manifest-remove.1.md)
   166  * [`podman mount`](./docs/source/markdown/podman-mount.1.md)
   167  * [`podman network exists`](./docs/source/markdown/podman-network-exists.1.md)
   168  * [`podman network prune`](./docs/source/markdown/podman-network-prune.1.md)
   169  * [`podman network reload`](./docs/source/markdown/podman-network-reload.1.md)
   170  * [`podman play `](./docs/source/markdown/podman-play.1.md)
   171  * [`podman play kube`](./docs/source/markdown/podman-play-kube.1.md)
   172  * [`podman pod `](./docs/source/markdown/podman-pod.1.md)
   173  * [`podman pod create`](./docs/source/markdown/podman-pod-create.1.md)
   174  * [`podman pod exists`](./docs/source/markdown/podman-pod-exists.1.md)
   175  * [`podman pod inspect`](./docs/source/markdown/podman-pod-inspect.1.md)
   176  * [`podman pod kill`](./docs/source/markdown/podman-pod-kill.1.md)
   177  * [`podman pod pause`](./docs/source/markdown/podman-pod-pause.1.md)
   178  * [`podman pod prune`](./docs/source/markdown/podman-pod-prune.1.md)
   179  * [`podman pod ps`](./docs/source/markdown/podman-pod-ps.1.md)
   180  * [`podman pod restart`](./docs/source/markdown/podman-pod-restart.1.md)
   181  * [`podman pod rm`](./docs/source/markdown/podman-pod-rm.1.md)
   182  * [`podman pod start`](./docs/source/markdown/podman-pod-start.1.md)
   183  * [`podman pod stats`](./docs/source/markdown/podman-pod-stats.1.md)
   184  * [`podman pod stop`](./docs/source/markdown/podman-pod-stop.1.md)
   185  * [`podman pod top`](./docs/source/markdown/podman-pod-top.1.md)
   186  * [`podman pod unpause`](./docs/source/markdown/podman-pod-unpause.1.md)
   187  * [`podman system connection `](./docs/source/markdown/podman-system-connection.1.md)
   188  * [`podman system connection add`](./docs/source/markdown/podman-system-connection-add.1.md)
   189  * [`podman system connection default`](./docs/source/markdown/podman-system-connection-default.1.md)
   190  * [`podman system connection list`](./docs/source/markdown/podman-system-connection-list.1.md)
   191  * [`podman system connection remove`](./docs/source/markdown/podman-system-connection-remove.1.md)
   192  * [`podman system connection rename`](./docs/source/markdown/podman-system-connection-rename.1.md)
   193  * [`podman system migrate`](./docs/source/markdown/podman-system-connection-migrate.1.md)
   194  * [`podman system renumber`](./docs/source/markdown/podman-system-connection-renumber.1.md)
   195  * [`podman system reset`](./docs/source/markdown/podman-system-connection-reset.1.md)
   196  * [`podman system service`](./docs/source/markdown/podman-system-connection-service.1.md)
   197  * [`podman unmount`](./docs/source/markdown/podman-unmount.1.md)
   198  * [`podman unshare`](./docs/source/markdown/podman-unshare.1.md)
   199  * [`podman untag`](./docs/source/markdown/podman-untag.1.md)
   200  * [`podman volume exists`](./docs/source/markdown/podman-volume-exists.1.md)