Docker - podstawowe operacje

Materiał przygotowany z pomocą AI

Docker to platforma do uruchamiania aplikacji w kontenerach — lekkich, izolowanych środowiskach zawierających program i wszystko, czego potrzebuje do działania (biblioteki systemowe, konfiguracja, dane). Dzięki temu ta sama aplikacja zachowuje się identycznie na laptopie programisty i na serwerze produkcyjnym, niezależnie od systemu operacyjnego gospodarza.

W praktyce pracujesz z dwoma rodzajami obiektów:

  • Obraz (image) — szablon, gotowa do uruchomienia „paczka” (np. nginx:latest, python:3.12)
  • Kontener (container) — działająca instancja obrazu; z jednego obrazu można uruchomić wiele kontenerów

Polecenia poniżej działają identycznie na Linuksie i macOS. Jeśli potrzebujesz kontekstu pracy w terminalu, zacznij od Komendy terminala - Linux i macOS.

Instalacja

  • Debian/Ubuntu: sudo apt install docker.io (wersja z repozytoriów dystrybucji) albo oficjalne repozytorium Dockera dla najnowszej wersji
  • macOS: Docker Desktop (graficzna aplikacja) albo Colima, lżejsza alternatywa: brew install colima docker

Po instalacji na Linuksie warto dodać użytkownika do grupy docker (sudo usermod -aG docker $USER), żeby nie poprzedzać każdego polecenia sudo.

Obrazy

docker pull nginx                   # pobierz obraz z Docker Hub
docker images                       # lista lokalnych obrazów
docker rmi nginx                    # usuń obraz

Kontenery

docker run -d -p 8080:80 nginx      # uruchom w tle, mapuj port hosta:kontenera
docker run -it ubuntu bash          # interaktywnie z powłoką
docker run --rm alpine echo hi      # usuń kontener po zakończeniu
docker ps                           # uruchomione kontenery
docker ps -a                        # wszystkie (też zatrzymane)
docker stop nazwa                   # zatrzymaj
docker start nazwa                  # uruchom ponownie
docker rm nazwa                     # usuń kontener
docker logs nazwa                   # logi kontenera
docker logs -f nazwa                # logi na żywo (follow)
docker exec -it nazwa bash          # powłoka w działającym kontenerze

Flagi -d, -it, --rm

-d (detach) — uruchom w tle. -it (-i interactive + -t tty) — przyłącz terminal, niezbędne do interaktywnej powłoki. --rm — usuń kontener po zakończeniu, dzięki temu nie zaśmieca listy docker ps -a.

Zarządzanie zasobami

Docker potrafi szybko zająć kilka GB miejsca obrazami i wolumenami zatrzymanych kontenerów:

docker system df                    # ile miejsca zajmuje docker
docker system prune                 # usuń niepotrzebne (kontenery, sieci, cache)
docker system prune -a --volumes    # agresywne czyszczenie (też obrazy i wolumeny)

prune --volumes usuwa dane

Wolumeny zawierają dane kontenerów (np. baza Postgresa). docker system prune -a --volumes usunie wszystkie wolumeny niepowiązane z aktualnie uruchomionym kontenerem — łatwo stracić bazę testową.

Docker Compose — wieloskładnikowe aplikacje

docker compose pozwala opisać kilka powiązanych kontenerów w jednym pliku docker-compose.yml (np. aplikacja + baza + cache) i sterować nimi razem:

docker compose up -d                # uruchom (w tle)
docker compose down                 # zatrzymaj i usuń
docker compose logs -f
docker compose ps

To standard dla lokalnego środowiska deweloperskiego — zamiast pamiętać kilka długich docker run, definicja stoi w pliku, który można zacommitować do repozytorium.

Zobacz także