Docker Cheat Sheet
Docker Commands
Pull Images
Get images from Docker Hub.
Use the pull command to download the image to your system.
💡 Try to use the images with the
slimtag to drastically reduce your image size.
docker pull python:3.12.3-slim
Build Images
Build your image based on a Dockerfile and tag (name) it.
TAG (not to be confused with -t) to give it a version.
If no TAG is given, your image will be given the latest tag by default.
docker build -t MY-IMAGE-NAME:TAG .
docker build -t MY-IMAGE-NAME:TAG -f /PATH/TO/DOCKERFILE .
buildbuilds the image based on the Dockerfile.-tis the tag flag:TAG(optional) to give it a version e.g.docker build -t hello-world:0.0.1 ..is the PATH location of your Dockerfile. The.is used for the current directory and specifies the build context.-fto specify the PATH location of your Dockerfile.
Run Containers
Start a container based on the image you created.
💡 You should use
docker compose upinstead ofdocker runas a more convenient way to run your containers. However, both methods are fine.
docker run MY-IMAGE-NAME:TAG
Other container commands:
docker stop MY-IMAGE-NAME:TAG
docker start MY-IMAGE-NAME:TAG
docker restart MY-IMAGE-NAME:TAG
docker rm MY-IMAGE-NAME:TAG
👇 These are optional (but useful) flags.
docker run \
  --name MY-CONTAINER-NAME \
  -d \
  -it \
  --rm \
  -p 8080:80 \
  -v $(pwd):/app \
  MY-IMAGE-NAME:TAG\
  tail -f /dev/null
runwill start a container based on the image.--namewill name the container otherwise Docker will assign the container a random name.-dis for detached mode. This will run your container in the background.-itconnect to the container's terminal once it starts.--rmwill remove the container once it stops.-p HOST_PORT:CONTAINER_PORTpublishes the ports e.g.-p 8080:8080-v HOST_DIRECTORY/CONTAINER_DIRECTORYwill bind mount volume a folder on your machine to the container.- Use 
pwd(print working directory) instead of writing out the full path manually. - Linux: 
docker run -v $(pwd):/path/in/container my-image - Windows PowerShell: 
docker run -v ${PWD}:/path/in/container my-image tail -f /dev/nullprevents the container from closing by searching for a non-existent file.
General Commands
Check status of containers:
docker ps -a
Go into the container's terminal:
docker exec -it NAME-OF-CONTAINER bash
List all images:
docker image ls
Delete images:
docker image rm IMAGE-NAME
Check container logs:
docker logs NAME-OF-CONTAINER
Check container config:
docker inspect NAME-OF-CONTAINER
Check the resource usage of your container:
docker stats NAME-OF-CONTAINER
Docker Compose
💡 Make sure your terminal is in the same directory as the
docker-compose.yamlfile.
Build and start up container(s):
docker compose up -d
-dis also detached mode to run it in the background (optional)
Stop container(s):
docker compose stop
Start container(s):
docker compose start
Restart container(s):
docker compose start
Remove container(s):
docker compose down