zsh-containers is a zsh plugin that provides aliases and better interoperability between podman and docker commands based on which you have installed.
Add this to your zinit config (.zshrc):
zinit light redxtech/zsh-containers
# it also works with turbo mode:
zinit ice wait lucid
zinit load redxtech/zsh-containersInstall it with your favourite zsh package manager, or clone it directly to your $ZSH_CUSTOM/plugins directory with git, and add containers to the plugins array in your .zshrc file:
plugins=(... containers)i would recommend using greymd/docker-zsh-completion for up-to-date completions pulled weekly from upstream.
since podman and docker commands are mostly interchangable, people will often use alias docker="podman", and it usually works fine - however, if you also use docker compose, it might be not work if you run compose via docker compose, since podman compose isn't a command - you have to run podman-compose, which isn't exactly compatible with the alias method.
to solve that, i've made a docker function, that detects if the first argument is compose. if that's the case, it removes that argument, and passes the rest to podman-compose. for any other first argument, it passes them all to podman.
if you don't use podman or podman-compose, then this plugin won't change any of this.
| Alias | Command | Description |
|---|---|---|
| dbl | docker build |
Build an image from a Dockerfile |
| dcin | docker container inspect |
Display detailed information on one or more containers |
| dcls | docker container ls |
List all the running docker containers |
| dclsa | docker container ls -a |
List all running and stopped containers |
| dib | docker image build |
Build an image from a Dockerfile (same as docker build) |
| dii | docker image inspect |
Display detailed information on one or more images |
| dils | docker image ls |
List docker images |
| dipu | docker image push |
Push an image or repository to a remote registry |
| dirm | docker image rm |
Remove one or more images |
| dit | docker image tag |
Add a name and tag to a particular image |
| dlo | docker container logs |
Fetch the logs of a docker container |
| dnc | docker network create |
Create a new network |
| dncn | docker network connect |
Connect a container to a network |
| dndcn | docker network disconnect |
Disconnect a container from a network |
| dni | docker network inspect |
Return information about one or more networks |
| dnls | docker network ls |
List all networks the engine daemon knows about, including those spanning multiple hosts |
| dnrm | docker network rm |
Remove one or more networks |
| dpo | docker container port |
List port mappings or a specific mapping for the container |
| dpu | docker pull |
Pull an image or a repository from a registry |
| dr | docker container run |
Create a new container and start it using the specified command |
| drit | docker container run -it |
Create a new container and start it in an interactive shell |
| drm | docker container rm |
Remove the specified container(s) |
| drm! | docker container rm -f |
Force the removal of a running container (uses SIGKILL) |
| dst | docker container start |
Start one or more stopped containers |
| drs | docker container restart |
Restart one or more containers |
| dsta | docker stop $(docker ps -q) |
Stop all running containers |
| dstp | docker container stop |
Stop one or more running containers |
| dtop | docker top |
Display the running processes of a container |
| dvi | docker volume inspect |
Display detailed information about one or more volumes |
| dvls | docker volume ls |
List all the volumes known to docker |
| dvprune | docker volume prune |
Cleanup dangling volumes |
| dxc | docker container exec |
Run a new command in a running container |
| dxcit | docker container exec -it |
Run a new command in a running container in an interactive shell |
| Alias | Command | Description |
|---|---|---|
| dco | docker-compose |
Docker-compose main command |
| dcb | docker-compose build |
Build containers |
| dce | docker-compose exec |
Execute command inside a container |
| dcps | docker-compose ps |
List containers |
| dcrestart | docker-compose restart |
Restart container |
| dcrm | docker-compose rm |
Remove container |
| dcr | docker-compose run |
Run a command in container |
| dcstop | docker-compose stop |
Stop a container |
| dcup | docker-compose up |
Build, (re)create, start, and attach to containers for a service |
| dcupb | docker-compose up --build |
Same as dcup, but build images before starting containers |
| dcupd | docker-compose up -d |
Same as dcup, but starts as daemon |
| dcupdb | docker-compose up -d --build |
Same as dcup, but build images before starting containers and starts as daemon |
| dcdn | docker-compose down |
Stop and remove containers |
| dcl | docker-compose logs |
Show logs of container |
| dclf | docker-compose logs -f |
Show logs and follow output |
| dcpull | docker-compose pull |
Pull image of a service |
| dcstart | docker-compose start |
Start a container |
| dck | docker-compose kill |
Kills containers |
thanks to the docker and docker-compose oh-my-zsh plugins for inspiration for the aliases.