Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Docker

DockerΒΆ


πŸ“¦ Installation

Mac OS (Docker Desktop)

brew install --cask docker
open -a Docker

Ubuntu/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:latest

Networks

docker network ls
docker network create app-net
docker run --network app-net --name web myapp:latest
🏷️ Common Flags & Options
FlagMeaning
-dDetached mode
-pPort mapping
-vBind mount or named volume
-eEnvironment variable
--nameContainer name
--rmRemove container on exit
-itInteractive TTY
--restartRestart policy