Docker Cheatsheet — For Everyday Use

A beginner-friendly guide to the most common Docker commands you'll use daily.


Start & Stop Containers

CommandWhat it does
docker compose upStart all containers
docker compose up -dStart in background (detached mode)
docker compose downStop and remove containers
docker compose restartRestart all containers
docker compose stopStop containers (without removing)
docker compose startStart already created containers

Check Status

CommandWhat it does
docker psShow only running containers
docker ps -aShow all containers (including stopped)
docker imagesList all downloaded images
docker system dfShow Docker disk usage
docker inspect <name>Detailed info about a container

Logs (Most Useful for Debugging!)

CommandWhat it does
docker compose logsShow logs of all containers
docker compose logs -fFollow/live logs of all containers
docker compose logs -f backendLive logs of a specific container
docker logs <container_id>Logs by container ID
docker logs --tail 100 <container_id>Last 100 lines only

Tip: Use -f flag whenever something breaks — it shows errors in real time.


Go Inside a Container (like SSH)

docker exec -it <container_name> bash   # Open terminal inside container
docker exec -it <container_name> sh     # Use this if bash doesn't work

Tip: Container name is visible under the NAMES column in docker ps


Rebuild (When Code Changes Aren't Reflecting)

CommandWhat it does
docker compose up --buildRebuild and start
docker compose up --build -dRebuild in background
docker compose buildJust rebuild without starting

Tip: If your latest changes aren't showing up, always try --build flag.


Cleanup Commands

CommandWhat it does
docker system prune -aRemove ALL unused containers, images, networks
docker rm -f $(docker ps -aq)Force remove all containers
docker rmi -f $(docker images -aq)Remove all images
docker volume pruneRemove unused volumes
docker network pruneRemove unused networks

Warning: prune commands are irreversible. Make sure you don't need the data before running them.


Emergency Commands (When Nothing Works!)

CommandWhat it does
sudo docker rmi -f $(sudo docker images -aq)Force remove ALL images
sudo docker rm -f $(sudo docker ps -aq)Force remove ALL containers
sudo docker system prune -a --volumesRemove everything — images, containers, networks & volumes

Warning: These are nuclear options — only use when you want a completely fresh start.

Remove images one by one using Image ID (when bulk remove doesn't work):

sudo docker rmi -f <image_id>

# Example:
sudo docker rmi -f 2a5c65859499
sudo docker rmi -f ea7752e531c9
sudo docker rmi -f 60a93af0bba5

Tip: Get Image IDs from docker images command under the IMAGE ID column.


Verify Everything is Cleaned Up

docker ps -a      # Should return empty list
docker images     # Should return empty list
docker system df  # Should show 0 usage

Common Errors & Quick Fixes

ErrorFix
Port already in useRun docker compose down then up again
Changes not reflectingRun docker compose up --build
Container keeps restartingCheck logs: docker compose logs -f <name>
No space left on deviceRun docker system prune -a
Permission deniedAdd sudo before the command

Quick Reference — Most Used Daily Commands

# Start project
docker compose up -d

# Check what's running
docker ps

# See live logs
docker compose logs -f

# Rebuild after code changes
docker compose up --build -d

# Stop everything
docker compose down

# Clean up everything
docker system prune -a

Key Concepts (Explained Simply)

TermSimple Explanation
ImageA blueprint/template for a container (like a class in code)
ContainerA running instance of an image (like an object from a class)
VolumePersistent storage that survives container restarts
NetworkLets containers talk to each other
Docker ComposeA tool to manage multiple containers together using a single file
docker-compose.ymlConfig file that defines all your containers and settings

Made for developers who just need Docker to work Use sudo before any command if you get a permission error on Linux.