Docker Cheat Sheet

This is a quick reference cheat sheet for Docker. And you can find the most common Docker commands here.

Miscellaneous

Batch clean

Example Description
docker stop -f $(docker ps -a -q) Stopping all containers
docker rm -f $(docker ps -a -q) Removing all containers
docker rmi -f $(docker images -q) Removing all images

Registry commands

Login to a Registry

$ docker login
$ docker login localhost:8080

Logout from a Registry

$ docker logout
$ docker logout localhost:8080

Searching an Image

$ docker search nginx
$ docker search nginx --stars=3 --no-trunc busybox

Pulling an Image

$ docker pull nginx
$ docker pull eon01/nginx localhost:5000/myadmin/nginx

Pushing an Image

$ docker push eon01/nginx
$ docker push eon01/nginx localhost:5000/myadmin/nginx

Docker Hub

Docker Syntax Description
docker search search_word Search docker hub for images.
docker pull user/image Downloads an image from docker hub.
docker login Authenticate to docker hub
docker push user/image Uploads an image to docker hub.

Clean Up

Volumes

docker volume prune

Remove all volumes not used by at least one container

Images

Remove all dangling (not tagged and is not associated with a container) images:

docker image prune

Remove all images which are not used by existing containers

docker image prune -a

Containers

Stop all running containers

docker stop $(docker ps -a -q)

Delete stopped containers

docker container prune

Clean All

Cleans up dangling images, containers, volumes, and networks (ie, not associated with a container)

docker system prune

Additionally, remove any stopped containers and all unused images (not just dangling images)

docker system prune -a

Docker Networking

Creating Networks

docker network create -d overlay MyOverlayNetwork
docker network create -d bridge MyBridgeNetwork
docker network create -d overlay \
  --subnet=192.168.0.0/16 \
  --subnet=192.170.0.0/16 \
  --gateway=192.168.0.100 \
  --gateway=192.170.0.100 \
  --ip-range=192.168.1.0/24 \
  --aux-address="my-router=192.168.1.5" \
  --aux-address="my-switch=192.168.1.6" \
  --aux-address="my-printer=192.170.1.5" \
  --aux-address="my-nas=192.170.1.6" \
  MyOverlayNetwork

Docker Images

Building Images

$ docker build .
$ docker build github.com/creack/docker-firefox
$ docker build - < Dockerfile
$ docker build - < context.tar.gz
$ docker build -t eon/my-nginx .
$ docker build -f myOtherDockerfile .
$ curl example.com/remote/Dockerfile | docker build -f - .

Docker Containers

Manipulating

Renaming a Container

docker rename my-nginx my-nginx

Removing a Container

docker rm my-nginx

Updating a Container

docker update --cpu-shares 512 -m 300M my-nginx

Creating

docker create [options] IMAGE
  -a, --attach               # attach stdout/err
  -i, --interactive          # attach stdin (interactive)
  -t, --tty                  # pseudo-tty
      --name NAME            # name your image
  -p, --publish 5000:5000    # port map (host:container)
      --expose 5432          # expose a port to containers
  -P, --publish-all          # publish all ports
      --link container:alias # linking
  -v, --volume `pwd`:/app    # mount (absolute paths needed)
  -e, --env NAME=hello       # env vars

#Example

$ docker create --name my\_redis --expose 6379 redis:3.0.2

Information

Example Description
docker ps List running containers
docker ps -a List all containers
docker logs my-nginx Container Logs
docker inspect my-nginx Inspecting Containers
docker events my-nginx Containers Events
docker port my-nginx Public Ports
docker top my-nginx Running Processes
docker stats my-nginx Container Resource Usage
docker diff my-nginx Lists the changes made to a container.

Starting & Stopping

Description Example
docker start my-nginx Starting
docker stop my-nginx Stopping
docker restart my-nginx Restarting
docker pause my-nginx Pausing
docker unpause my-nginx Unpausing
docker wait my-nginx Blocking a Container
docker kill my-nginx Sending a SIGKILL
docker attach my-nginx Connecting to an Existing Container

Getting Started

Create and run a container in background

$ docker run -d -p 80:80 docker/getting-started

  • -d - Run the container in detached mode
  • -p 80:80 - Map port 80 to port 80 in the container
  • docker/getting-started - The image to use Create and run a container in foreground
$ docker run -it -p 8001:8080 --name my-nginx nginx

  • -it - Interactive bash mode
  • -p 8001:8080 - Map port 8001 to port 8080 in the container
  • --name my-nginx - Specify a name
  • nginx - The image to use

General commands

Example Description
docker ps List running containers
docker ps -a List all containers
docker ps -s List running containers(with CPU / memory)
docker images List all images
docker exec -it <container> bash Connecting to container
docker logs <container> Shows container's console log
docker stop <container> Stop a container
docker restart <container> Restart a container
docker rm <container> Remove a container
docker port <container> Shows container's port mapping
docker top <container> List processes
docker kill <container> Kill a container
Parameter <container> can be container id or name