Docker Cheat Sheet
Docker is a tool that lets you package applications into containers: lightweight, portable environments that include everything needed to run your app.
Basic Concepts
| Concept | Meaning |
|---|---|
| Image | Blueprint (read-only template) |
| Container | Running instance of an image |
| Dockerfile | Instructions to build an image |
| Volume | Persistent storage |
| Network | Communication between containers |
Images
Pull an image
docker pull nginxList images
docker imagesRemove image
docker rmi nginxBuild image from Dockerfile
docker build -t my-app .Containers
Run a container
docker run nginxRun in background (detached)
docker run -d nginxName a container
docker run --name web nginxMap ports
docker run -p 8080:80 nginx(host:container)
List containers
docker ps # running
docker ps -a # allStop / start / restart
docker stop container_id
docker start container_id
docker restart container_idRemove container
docker rm container_idForce remove running container:
docker rm -f container_idExecute inside container
docker exec -it container_id bashor:
docker exec -it container_id shLogs & Inspection
View logs
docker logs container_idFollow logs live:
docker logs -f container_idInspect container
docker inspect container_idDockerfile Basics
Example:
FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]Build from Dockerfile
docker build -t my-node-app .Volumes
Create volume
docker volume create mydataRun with volume
docker run -v mydata:/data nginxBind mount (local folder)
docker run -v $(pwd):/app nginxNetworks
List networks
docker network lsCreate network
docker network create mynetRun container in network
docker run --network mynet nginxDocker Compose (multi-container)
Example file
version: "3.9"
services:
app:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
db:
image: postgres
environment:
POSTGRES_PASSWORD: exampleCommands
Start services:
docker compose upDetached mode:
docker compose up -dStop services:
docker compose downRebuild:
docker compose up --buildCleanup
Remove unused containers
docker container pruneRemove unused images
docker image pruneFull system cleanup (dangerous)
docker system prune -aDebugging
View resource usage
docker statsCheck disk usage
docker system dfUseful Shortcuts
docker ps -a # all containers
docker images # all images
docker exec -it # enter container
docker logs -f # live logs
docker stop $(docker ps -q)
docker rm $(docker ps -aq)Port Mapping Mental Model
Host Machine Container
------------ ----------
localhost:8080 → 80 (nginx)
localhost:3000 → 3000 (node)Key Idea
Docker isolates applications like:
“Run everything as if it has its own computer”
But:
-
shares kernel
-
stays lightweight
-
runs anywhere
Most Used Commands
docker pull
docker run
docker ps
docker stop
docker rm
docker build
docker exec
docker logs
docker compose up
docker compose downGolden Workflow
docker build -t my-app .
docker run -p 3000:3000 my-app
docker ps
docker logs -f container_id
docker stop container_id