Docker – lista komend

Wszystkie komendy z serii Podstawy Docker w jednym miejscu. Uporządkowane tematycznie — od instalacji po zarządzanie sieciami.
Na tej stronie:
pokaż
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






