Docker Commands Cheat Sheet - Essential Docker CLI Guide

Master Docker with this comprehensive cheat sheet. Find essential Docker commands for building, running, managing containers, images, volumes, and networks.

Docker Commands Cheat Sheet

This cheat sheet provides essential Docker commands for developers to efficiently manage containers, images, volumes, and networks. Mastering these commands is crucial for effective DevOps practices.

Docker Daemon and Image Building

# To start the docker daemon:
docker -d

# To build a docker image:
docker build -t <image-tag-name> <path-of-Dockerfile>

Running and Managing Containers

# To start a container with an interactive shell:
docker run -ti <image-name> /bin/bash

# To run a docker container in the background:
docker run -d <image-name>

# To "shell" into a running container (docker-1.3+):
docker exec -ti <container-name> bash

# To inspect a running container:
docker inspect <container-name> (or <container-id>)

# To get the process ID for a container:
docker inspect --format {{.State.Pid}} <container-name-or-id>

# To list (and pretty-print) the current mounted volumes for a container:
docker inspect --format='{{json .Volumes}}' <container-id> | python -mjson.tool

# To copy files/folders between a container and your host:
docker cp foo.txt mycontainer:/foo.txt

# To list currently running containers:
docker ps

# To list all containers:
docker ps -a

# To remove all stopped containers:
docker container prune

# To remove all stopped containers:
docker rm $(docker ps -qa)

# To see the logs of a background or stopped container:
docker logs <container-id>

# To publish a port of container on localhost:
docker run -p <localhost-port>:<container-port> <image-name>

# To copy a file from the running container to host mechine:
docker cp <container-id>:<path/to/file> <host/copy/path>

# To copy a file from host mechine to the running container:
docker cp <host/copy/path> <container-id>:<path/to/file>

Managing Docker Images

# To list all images:
docker images

# To only see all images id:
docker image ls -q

# To remove all untagged images:
docker rmi $(docker images | grep "^<none>" | awk '{print $3}')

# To save image as tar archive:
docker save -o <archive-name>.tar <image-name>

# To restore image from a saved tar archive:
docker load -i <archive-name>.tar

# To remove an image:
docker image rm <image-name-or-id>

# To tag an image:
docker image tag <image-name>:<tag-name> <image-name>:<new-tag-name>

Docker Hub and Image Pushing

# To login into hub.docker.com:
docker login

# To push a docker image into dockerhub repository:
docker push <image-name>:<image-tag-name>

Docker Networks

# List all networks daemon knows about:
docker network ls

# Create a specific network:
docker network create "<network_name>"

# Connect a specific container to a network:
docker network connect "<network_id|name>" "<container_id|name>"

# Disconnect a specific container from network:
docker network disconnect "<network_id|name>" "<container_id|name>"

Docker Volumes

# To create a docker volume:
docker volume create <volume-name>

# To see information of a docker volume:
docker volume inspect <volume-name>

# To use a volume in the container:
docker run -v <volume-name>:<folder-path-in-container> <image>

# To link current folder between host and container for development:
docker run <image-name> -v $(pwd):<folder-path-in-container> <image>

# To remove all volumes not used by at least one container:
docker volume prune

Further Learning

For more in-depth information on Docker commands and concepts, refer to the official Docker CLI reference and the Docker Volumes documentation.