Forget the myth that Docker is only for DevOps. Today, it’s a must-have tool for any developer — as essential as Git or VS Code. Docker lets your code run consistently on every machine — local, staging, or production. No more “works on my machine” nightmares.
This article is a practical cheatsheet of commands — not theory. Whether you’re just getting into containerization or looking for a solid reference, this is your fast track.
🧱 Images
Images are templates that contain your app and everything it needs to run.
-
List all images:
docker images or docker image ls -
Pull an image:
docker pull redis:7-alpine -
Remove an image:
docker rmi redis:7-alpine -
Prune dangling images:
docker image prune or docker image prune -a -
Inspect image history:
docker history <image> -
Inspect full image info (JSON):
docker inspect <image>
📦 Containers
Containers are running instances of images — isolated environments where your app runs.
-
List running containers:
docker ps -
List all containers (incl. stopped):
docker ps -a -
Run a container:
123
docker run -d -p 8080:80 --name my_nginx nginx docker run --rm -it ubuntu /bin/bash docker run -v $(pwd):/app node:18-alpineKey flags:
-
-d: Detached mode (background)
-
-p: Port mapping
-
-v: Volume mount
-
--name: Custom container name
-
--rm: Remove on exit
-
-it: Interactive terminal
-
-e: Set environment variable
-
--network: Attach to network
-
Start/stop/restart containers:
docker start/stop/restart <name> -
Remove container:
docker rm -f <name> or docker container prune -
View logs:
docker logs -f --tail 50 <name> -
Execute inside a container:
docker exec -it <name> /bin/bash -
Copy files:
From host to container:
docker cp ./local/file.txt container:/app/
From container to host:
docker cp container:/app/file.txt ./ -
Inspect container info:
docker inspect <container>
🏗️ Build with Dockerfile
12
docker build -t my_app:1.0 . docker build --platform linux/amd64 -t my_app_amd64 .Useful flags:
- -t: Tag the image
- -f: Specify Dockerfile path
- --no-cache: Disable layer caching
- --build-arg: Pass build-time variables
🧩 Docker Compose
Define multi-container setups in docker-compose.yml.
-
Run and build services:
docker-compose up -d --build -
Stop and remove everything:
docker-compose down -v -
View container logs:
docker-compose logs -f <service> -
Execute inside a service container:
docker-compose exec db psql -U user -d database -
Other helpful commands:
- docker-compose ps
- docker-compose build
- docker-compose pull
- docker-compose restart
- docker-compose stop/start
🌐 Networks
Docker lets containers communicate over custom networks.
12345
docker network ls docker network create my_net docker network inspect my_net docker network connect my_net my_container docker network disconnect my_net my_container💾 Volumes
Volumes persist data across container restarts.
12345
docker volume ls docker volume create data_store docker volume inspect data_store docker volume rm data_store docker volume prune✅ Best Practices for Devs
- Use .dockerignore to reduce image size and cache misses.
- Optimize layer order in Dockerfile for caching.
- Use multi-stage builds for lean production images.
- Avoid running as root unless needed.
- Clean up regularly: docker system prune -af.
- Add aliases to save time:
alias dps='docker ps -a'
alias dlogs='docker-compose logs -f'
📌 Summary
This cheatsheet gives you everything you need to start using Docker like a pro — no fluff, just the commands that matter.
Start small. Build habits. And soon these will be second nature.
.png)
