Docker – lista komend

Wszystkie komendy z serii Podstawy Docker w jednym miejscu. Uporządkowane tematycznie — od instalacji po zarządzanie sieciami.


Instalacja Docker (Ubuntu/Debian)

# Usuń stare wersje
sudo apt remove docker.io docker-compose docker-compose-v2 containerd runc

# Zainstaluj wymagane pakiety
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings

# Dodaj klucz GPG (Ubuntu)
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Dodaj repozytorium (Ubuntu)
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF

# Zainstaluj Docker Engine + Compose
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Dodaj użytkownika do grupy docker
sudo usermod -aG docker $USER
# Przeloguj się (exit + SSH)

Weryfikacja instalacji

docker --version                     # wersja Docker
docker compose version               # wersja Compose
docker run hello-world               # test instalacji
sudo systemctl status docker         # status usługi
sudo systemctl enable docker         # autostart po restarcie
groups                               # sprawdź grupę docker

Uruchamianie kontenerów

docker run caddy                     # uruchom kontener
docker run -d caddy                  # uruchom w tle
docker run -d --name moj-caddy caddy # nadaj nazwę
docker run -d -p 8080:80 caddy       # mapuj port host:kontener
docker run -d -e MY_VAR=hello caddy  # zmienna środowiskowa
docker run -it ubuntu bash           # tryb interaktywny
docker run -d -v dane:/app/data caddy # z wolumenem
docker run -d --restart unless-stopped caddy # auto-restart

Zarządzanie kontenerami

docker ps                            # działające kontenery
docker ps -a                         # wszystkie (+ zatrzymane)
docker stop moj-caddy                # zatrzymaj
docker start moj-caddy               # uruchom ponownie
docker restart moj-caddy             # restart
docker rm moj-caddy                  # usuń zatrzymany kontener
docker rm -f moj-caddy               # wymuś usunięcie

Logi i debugging

docker logs moj-caddy                # pokaż logi
docker logs -f moj-caddy             # śledź na żywo
docker logs --tail 50 moj-caddy      # ostatnie 50 linii
docker logs --since 1h moj-caddy     # logi z ostatniej godziny
docker exec moj-caddy ls /etc/caddy  # wykonaj komendę w kontenerze
docker exec -it moj-caddy sh         # wejdź do kontenera
docker inspect moj-caddy             # szczegółowe info (JSON)
docker stats                         # zużycie CPU/RAM na żywo

Obrazy

docker images                        # lista pobranych obrazów
docker pull caddy                    # pobierz/zaktualizuj obraz
docker pull caddy:2.9                # konkretna wersja (tag)
docker rmi caddy                     # usuń obraz

Docker Compose

docker compose up -d                 # uruchom serwisy w tle
docker compose down                  # zatrzymaj i usuń kontenery
docker compose ps                    # status serwisów
docker compose logs                  # logi wszystkich serwisów
docker compose logs -f app           # śledź logi jednego serwisu
docker compose restart               # restart wszystkich
docker compose restart app           # restart jednego serwisu
docker compose pull                  # pobierz najnowsze obrazy
docker compose up -d --pull always   # pobierz i uruchom

Wolumeny

docker volume ls                     # lista wolumenów
docker volume inspect dane_postgres  # szczegóły wolumenu
docker volume rm dane_postgres       # usuń wolumen
docker volume prune                  # usuń nieużywane wolumeny
docker cp db:/var/lib/postgresql/data ./backup # kopiuj z kontenera
docker compose down                  # zatrzymaj (dane zostają)
docker compose down -v               # zatrzymaj + USUŃ dane!

Sieci

docker network ls                    # lista sieci
docker network create moja-siec      # utwórz sieć
docker network inspect bridge        # szczegóły sieci
docker network rm moja-siec          # usuń sieć
docker network connect siec kontener # podłącz kontener
docker network disconnect siec kontener # odłącz kontener

Czyszczenie

docker system prune                  # usuń zatrzymane kontenery, nieużywane sieci
docker system prune -a               # + wszystkie nieużywane obrazy
docker volume prune                  # nieużywane wolumeny

Backup baz danych

docker exec db pg_dumpall -U postgres > backup.sql       # PostgreSQL
docker exec db mysqldump -u root -p --all-databases > backup.sql # MySQL
docker exec -i db psql -U postgres < backup.sql          # przywróć PostgreSQL

Szablon docker-compose.yml

services:
  app:
    image: nazwa-obrazu:tag
    ports:
      - "8080:80"              # host:kontener
    environment:
      - KLUCZ=wartość
    volumes:
      - dane_app:/app/data     # wolumen Docker
      - ./config:/etc/app:ro   # bind mount (read-only)
    restart: unless-stopped
    depends_on:
      - db
    networks:
      - backend

  db:
    image: postgres:16
    environment:
      - POSTGRES_PASSWORD=${DB_PASSWORD}
    volumes:
      - dane_db:/var/lib/postgresql/data
    restart: unless-stopped
    networks:
      - backend

volumes:
  dane_app:
  dane_db:

networks:
  backend:

Workflow aktualizacji

# 1. Backup
docker exec db pg_dumpall -U postgres > backup-$(date +%Y%m%d).sql

# 2. Pobierz nowe obrazy
docker compose pull

# 3. Uruchom ponownie (podmieni zmienione kontenery)
docker compose up -d

# 4. Sprawdź logi
docker compose logs

📚 Podstawy Docker — przewodnik

Roman Rozenberger
Roman Rozenberger

Jestem digital marketerem ze specjalizacją w marketingu w wyszukiwarkach internetowych. Wdrażam automatyzacje z wykorzystaniem narzędzi LowCode, NoCode i AI. Identyfikuje procesy i rozwiązuję problemy.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *