DockerΒΆ
π¦ Installation
Mac OS (Docker Desktop)
brew install --cask docker
open -a DockerUbuntu/Debian (Docker Engine)
sudo apt update
sudo apt install -y docker.io
sudo usermod -aG docker $USER
newgrp dockerπ Basic Commands
docker version
docker info
docker pull nginx:latest
docker images
docker ps
docker ps -a
docker run --rm -p 8080:80 nginx:latest
docker exec -it <container> /bin/sh
docker logs -f <container>
docker stop <container>
docker rm <container>π Dockerfile
Minimal app image
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]Build and run
docker build -t myapp:latest .
docker run --rm -p 8000:8000 myapp:latestπ Docker Compose
compose.yaml
services:
web:
build: .
ports:
- "8000:8000"
environment:
- APP_ENV=dev
db:
image: postgres:16
environment:
- POSTGRES_PASSWORD=example
ports:
- "5432:5432"Commands
docker compose up -d
docker compose logs -f
docker compose downπΎ Volumes & Networks
Volumes
docker volume ls
docker volume create app-data
docker run -v app-data:/var/lib/app myapp:latestNetworks
docker network ls
docker network create app-net
docker run --network app-net --name web myapp:latestπ·οΈ Common Flags & Options
| Flag | Meaning |
|---|---|
-d | Detached mode |
-p | Port mapping |
-v | Bind mount or named volume |
-e | Environment variable |
--name | Container name |
--rm | Remove container on exit |
-it | Interactive TTY |
--restart | Restart policy |