Introduction
Docker helps you package an application with everything it needs to run: code, dependencies, environment variables, and runtime settings. This cheat sheet covers the most useful Docker commands for daily development.
1. Check Docker Installation
docker --version
docker info
docker help
2. Docker Images
List images
docker images
Pull an image
docker pull nginx
docker pull python:3.12
docker pull node:20
Remove an image
docker rmi image_name
docker rmi image_id
Build an image from a Dockerfile
docker build -t my-app .
Build with a specific Dockerfile
docker build -f Dockerfile.dev -t my-app-dev .
3. Docker Containers
Run a container
docker run nginx
Run container in detached mode
docker run -d nginx
Run container with a name
docker run --name my-nginx nginx
Run container and map ports
docker run -p 8080:80 nginx
This maps port 8080 on your computer to port 80 inside the container.
Run container with environment variables
docker run -e APP_ENV=development my-app
Run container interactively
docker run -it ubuntu bash
4. List Containers
Running containers
docker ps
All containers
docker ps -a
5. Stop, Start, Restart Containers
docker stop container_name
docker start container_name
docker restart container_name
6. Remove Containers
Remove one container
docker rm container_name
Remove all stopped containers
docker container prune
7. Logs and Debugging
View logs
docker logs container_name
Follow logs live
docker logs -f container_name
Enter a running container
docker exec -it container_name bash
If bash is not available:
docker exec -it container_name sh
Inspect container details
docker inspect container_name
8. Volumes
Volumes help you persist data outside the container.
Create a volume
docker volume create my-volume
List volumes
docker volume ls
Use a volume
docker run -v my-volume:/app/data my-app
Remove a volume
docker volume rm my-volume
Remove unused volumes
docker volume prune
9. Bind Mounts
Bind mounts connect a folder on your computer to a folder inside the container.
docker run -v $(pwd):/app my-app
On Windows PowerShell:
docker run -v ${PWD}:/app my-app
10. Networks
List networks
docker network ls
Create a network
docker network create my-network
Run container on a network
docker run --network my-network --name app my-app
Remove a network
docker network rm my-network
11. Dockerfile Example
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "app.py"]
12. Docker Compose
Docker Compose helps you run multiple containers together.
Example docker-compose.yml
services:
app:
build: .
ports:
- "8000:8000"
environment:
- APP_ENV=development
volumes:
- .:/app
database:
image: postgres:16
environment:
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=password
- POSTGRES_DB=mydb
ports:
- "5432:5432"
Start services
docker compose up
Start in detached mode
docker compose up -d
Stop services
docker compose down
Rebuild services
docker compose up --build
View logs
docker compose logs
docker compose logs -f
13. Cleaning Up Docker
Remove unused data
docker system prune
Remove unused data including images
docker system prune -a
Remove unused containers
docker container prune
Remove unused images
docker image prune
Remove unused volumes
docker volume prune
Be careful with prune commands because they delete unused Docker resources.
14. Common Docker Commands Summary
docker build -t my-app .
docker run -p 8000:8000 my-app
docker ps
docker ps -a
docker stop container_name
docker start container_name
docker restart container_name
docker rm container_name
docker rmi image_name
docker logs -f container_name
docker exec -it container_name bash
docker system prune
15. Useful Docker Compose Commands Summary
docker compose up
docker compose up -d
docker compose down
docker compose up --build
docker compose logs -f
docker compose ps
docker compose exec app bash
Final Note
Docker is powerful because it makes your application easier to run, share, test, and deploy. Once you understand images, containers, volumes, networks, and Docker Compose, you can package almost any application into a reproducible environment.
Top comments (0)