Docker Commands Cheat Sheet

In this article I will highlight the 6 key docker commands I use on a daily basis while using Docker in the real world.

By no means is this an extensive list of commands, I kept it short on purpose so you could use it as a quick reference guide. I’ve also omitted the topic of building images and the commands that are associated with that.

At the bottom of the page, I’ll also put some good links to other Docker resources I like or frequently use.

CommandShort Description
docker psList running containers
docker exec -it <container name> /bin/sh SSH into container
docker restart <container name>Restart a container
docker statsShow running container stats
docker system dfCheck docker daemon disk space usage
docker system prune -afRemove images, networks, containers, and volumes

Check Running Containers

Normally I will use this command just as often as I use ls command on a *NIX terminal. It’s especially useful when you first SSH to a machine to check what’s running. It’s also useful during the development and configuration process since you’ll likely have containers stopping/starting/crashing.

docker ps Example Output

SSH Into Container

This is probably my 2nd most popular command. Normally I am using this while trying to debug a container and need to shell into the container. Just note the -i flag means interactive and -t means TTY (aka a teletype terminal).

Also, you can use any command instead of /bin/sh; I only put that here because I frequently am SSHing into an alpine image which doesn’t support bash.

docker exec -it Example Output

Restart A Container

I debated putting this command in here, since I don’t use it all that often, but it’s a nice to have. Great example of when to use this - you change your prometheus configuration and need it to pick up the changes in your config file. You might also use this when resizing a volume.

Other commands you might use often, but I didn’t think were so worthy of their own section are docker start (see docs) and docker stop (see docs). You’ll use these commands normally when setting up or testing images and you’ll likely use a lot of flags. I didn’t think they were so applicable because you should honestly be using docker compose or some other orchestration system (like Amazon ECS or Kubernetes) to launch your containers.

Check CPU and Memory Usage

I’m normally using this command when I am trying to figure out optimal soft/hard limits for containers. You might also use this if you are debugging which container is using most of your host’s resources.

docker stats Example Output

Check Disk Space Usage

This one doesn’t come up to often, but it has, especially when you are building lots of images on a box or you are storing lots of data (like prometheus). If you are, you might consider setting up a cron job to prune your images and volumes on a recurring basis.

docker system df Example Output

Prune Images and Volumes

You’ll probably only use this command on a Docker build machine or on your dev box, nevertheless take note, cause you are likely to use it.

docker system prune -af Example Output

Also, just like mentioned above, if this is a build box consider setting up a cron job to prune your images. If you’re a cron syntax noob like me, you might find crontab.guru of use in understanding the syntax and shortcuts for popular time intervals.

crontab -l Example Output

Images

  • VPN - Run an IPsec VPN server. Super useful if you work from cafes like Starbucks.
  • Prometheus + Grafana Setup - Out of the box Prometheus and Grafana setup. We actually use a fork of this for monitoring the PagerTree platform.
  • Alpine Image - Slim OS image for Node.js apps in production.
  • GitLab Runner - A GitLab Runner inside a docker container. We use this at PagerTree to build our images.

Blog Articles

  • Docker Crash Course - If you’re new to docker this is a great crash course. Starts from installing docker all the way to docker compose. It can be a lot to take in so you might have to read it a couple times.
  • Deployment Automation with GitLab Runner - Super helpful writeup on setting up the GitLab Runner for your own CI/CD pipeline. Used this tutorial extensively when setting up PagerTree’s CI/CD.

Cheat Sheets