Docker Tips & Tricks

Here’s a collection of some nice little hacks for docker.

Here’s a collection of some nice little hacks for docker. A lot of them are related to house keeping.

Docker Stats

Produce console stats for all running containers (e.g. like top):

docker stats $(docker ps --format='{{.Names}}'

Remove all stopped containers

docker rm $(docker ps -a -q)

Remove all untagged images

docker images -q --filter "dangling=true" | xargs docker rmi

Prune everything

The docker system prune command is a shortcut that prunes images, containers, and networks.

Note

  • In Docker 17.06.0 and earlier, volumes are also pruned.
  • In Docker 17.06.1 and higher, you must specify the --volumes flag for docker system prune to prune volumes.

$ docker system prune

WARNING! This will remove:
        - all stopped containers
        - all networks not used by at least one container
        - all dangling images
        - all build cache
Are you sure you want to continue? [y/N] y

If you are on Docker 17.06.1 or higher and want to also prune volumes, add the --volumes flag:

$ docker system prune --volumes

WARNING! This will remove:
        - all stopped containers
        - all networks not used by at least one container
        - all volumes not used by at least one container
        - all dangling images
        - all build cache
Are you sure you want to continue? [y/N] y

By default, you are prompted to continue which can be bypassed by adding the -f or --force flag.

Simulate Multiple Inheritance

Docker doesn’t technically support multiple-inheritance, whereby an image can automatically merge multiple images using FROM. It does, however, support multi-stage builds that can be used to effectiely achive the same result.