In our last article, we talked about Cloud Service Provider CLIs.
Now, we will focus on containerization software. Podman and Docker are both native to Linux.
Therefore, when you install them on other operating systems, they require a Linux VM to run.
macOS has its own solution macOS container. By providing native software, Apple controls how they run the Linux VM over their UNIX-based system. Below are the essential CLI commands for all three containerization platforms.
Container Lifecycle & Diagnostics
| Goal | podman | docker | macOS container |
|---|---|---|---|
| List Containers | podman ps | docker psdocker container ls | container lscontainer list |
| Check Logs | podman logs | docker logs | container logs |
| Inspect Meta data | podman inspect | docker inspect | container inspect |
| Enter Shell | podman exec -it | docker exec -it | container shell |
| Start Container | podman start | docker start | container start |
| Stop Container | podman stop | docker stop | container stop |
| Create New Container | podman create | docker create | container create |
| Run (Create+Start) | podman run | docker run | container run |
| Kill (Force Stop) | podman kill | docker kill | container kill |
| Stop Delete or Remove | podman rm | docker rm | container deletecontainer rm |
Image & System Management
| Goal | podman | docker | macOS container |
|---|---|---|---|
| Build from Dockerfile | podman build | docker build | container build |
| Manage Images | podman images | docker images | container imagescontainer i |
| Manage Registries Authenticate | podman login | docker login | container registry login |
| Manage Registries Clear Session | podman logout | docker logout | container registry logout |
| Manage Registries List | check config.json | check config.json | container registry list |
| Manage Builder | podman build | docker buildx | container builder |
| System Components | podman system | docker system | container systemcontainer s |
Foot Note:
- Podman stores registry credentials in auth.json (usually found in ${XDG_RUNTIME_DIR}/containers/auth.json or ~/.docker/config.json for compatibility).
- macOS container Logic: Based on the help menu you provided, the registry subcommand is a “manager” for configurations. This means it likely handles multiple registry settings in one place, whereas Docker and Podman commands are more “action-oriented” (do the login/logout).
Podman logout / Docker logoutis a critical security step, especially when using public registries like Docker Hub or Quay.io, to ensure credentials aren’t left in plain text on your local machine.- The macOS tool’s registry subcommand acts as a manager. This is a more modern CLI design, where related functions are tucked under a single parent command to keep the main help menu clean.
buildx, build, builder
- Docker: buildx started as an experimental plugin. Because Docker has a massive user base, they kept the name buildx to avoid breaking older scripts that used the standard docker build.
- Podman: Since Podman was designed later, it integrated multi-platform support directly into the podman build command from the start. It doesn’t need a “plugin” because the feature is built-in.
- macOS container: it has a specific builder subcommand. This is because macOS manages build “instances” (lightweight Linux VMs) specifically optimized for Swift and Apple Silicon performance.