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ń obrazKontenery
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 kontenerzeFlagi
-d,-it,--rm
-d(detach) — uruchom w tle.-it(-iinteractive +-ttty) — przyłącz terminal, niezbędne do interaktywnej powłoki.--rm— usuń kontener po zakończeniu, dzięki temu nie zaśmieca listydocker 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 --volumesusuwa daneWolumeny zawierają dane kontenerów (np. baza Postgresa).
docker system prune -a --volumesusunie 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 psTo 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
- IT — indeks narzędzi informatycznych
- Komendy terminala - Linux i macOS — kontekst pracy w powłoce
- Git - podstawowe operacje — wersjonowanie pliku
docker-compose.yml - docs.docker.com — oficjalna dokumentacja
- Play with Docker — środowisko sandbox w przeglądarce