Podstawy Docker #3: Podstawowe komendy Docker

Ten poradnik to Twój cheat sheet — komendy, których będziesz używać codziennie przy pracy z kontenerami. Trzymaj go pod ręką.
Uruchamianie kontenerów — docker run
docker run caddy # uruchom kontener z obrazu caddy
docker run -d caddy # uruchom w tle (detached)
docker run -d --name moj-caddy caddy # nadaj kontenerowi nazwę
docker run -d -p 8080:80 caddy # mapuj port 8080 hosta → 80 kontenera
docker run -d -e MY_VAR=hello caddy # ustaw zmienną środowiskową
docker run -it ubuntu bash # tryb interaktywny (wejdź do kontenera)
Najważniejsze flagi
| Flaga | Znaczenie | Przykład |
|---|---|---|
-d |
W tle (detached) — bez tego kontener zajmie Twój terminal | docker run -d caddy |
-p host:kontener |
Mapowanie portów | -p 8080:80 |
-e KLUCZ=wartość |
Zmienna środowiskowa | -e DB_PASSWORD=secret |
--name nazwa |
Nazwa kontenera | --name moj-caddy |
-it |
-i = interactive, -t = terminal (ładny prompt) |
docker run -it ubuntu bash |
-v host:kontener |
Montowanie wolumenu | -v /dane:/app/data |
--restart unless-stopped |
Restart po awarii/reboot | automatyczny restart |
💡 Mapowanie portów
-p 8080:80 oznacza: port 8080 na Twoim serwerze przekierowuje do portu 80 wewnątrz kontenera. Kolejność: host:kontener. Wpisujesz w przeglądarce http://adres-serwera:8080 → Docker przekierowuje to do portu 80 wewnątrz kontenera.
Wyświetlanie kontenerów — docker ps
docker ps # działające kontenery
docker ps -a # wszystkie (także zatrzymane)
Wynik:
CONTAINER ID IMAGE COMMAND STATUS PORTS NAMES
a1b2c3d4e5f6 caddy "caddy run --config …" Up 2 hours 0.0.0.0:8080->80/tcp moj-caddy
Zatrzymywanie i uruchamianie
docker stop moj-caddy # zatrzymaj (graceful)
docker start moj-caddy # uruchom ponownie
docker restart moj-caddy # restart
💡 Nazwa vs ID
Możesz używać nazwy (moj-caddy) lub ID (a1b2c3d4e5f6) — wystarczą pierwsze kilka znaków ID: docker stop a1b2.
Usuwanie kontenerów i obrazów
docker rm moj-caddy # usuń zatrzymany kontener
docker rm -f moj-caddy # wymuś usunięcie (nawet działającego)
docker rmi caddy # usuń obraz
Czyszczenie — usuwanie nieużywanych zasobów
docker system prune # usuń zatrzymane kontenery, nieużywane sieci, wiszące obrazy
docker system prune -a # + usuń wszystkie nieużywane obrazy
docker volume prune # usuń nieużywane wolumeny
⚠️ Uwaga
docker system prune -a usuwa wszystkie obrazy, które nie są aktualnie używane przez żaden kontener. Używaj ostrożnie.
Logi — docker logs
docker logs moj-caddy # pokaż logi kontenera
docker logs -f moj-caddy # śledź logi na żywo (jak tail -f)
docker logs --tail 50 moj-caddy # ostatnie 50 linii
docker logs --since 1h moj-caddy # logi z ostatniej godziny
💡 Scenariusz: kontener się crashuje
docker ps -a # sprawdź status — czy jest "Exited"?
docker logs moj-caddy # przeczytaj logi — co poszło nie tak?
Wykonywanie komend w kontenerze — docker exec
docker exec moj-caddy ls /etc/caddy # wykonaj komendę w działającym kontenerze
docker exec -it moj-caddy sh # wejdź do kontenera interaktywnie
💡 Kiedy bash, kiedy sh?
Jeśli bash nie działa — użyj sh. Lekkie obrazy (Alpine Linux, np. Caddy) mają tylko sh. Obrazy oparte na Ubuntu/Debian mają oba.
Obrazy — docker images i docker pull
docker images # lista pobranych obrazów
docker pull caddy # pobierz/zaktualizuj obraz
docker pull caddy:2.9 # pobierz konkretną wersję (tag)
Tagi (wersje) obrazów
docker run caddy # = caddy:latest (domyślnie)
docker run caddy:2.9 # konkretna wersja
docker run caddy:2.9-alpine # wersja Alpine (lżejsza)
⚠️ Unikaj latest na produkcji
Tag latest to zawsze najnowsza wersja — może się zmienić po docker pull. Na serwerze produkcyjnym używaj konkretnego tagu (np. caddy:2.9), żeby mieć kontrolę nad wersją.
Inspekcja — docker inspect
docker inspect moj-caddy # szczegółowe informacje (JSON)
docker inspect moj-caddy | grep IPAddress # znajdź IP kontenera
Statystyki — docker stats
docker stats # zużycie CPU/RAM/sieci w czasie rzeczywistym
docker stats moj-caddy # tylko wybrany kontener
Podsumowanie
| Komenda | Co robi |
|---|---|
docker run -d -p 8080:80 caddy |
Uruchom kontener w tle z mapowaniem portu |
docker ps / docker ps -a |
Lista kontenerów (działające / wszystkie) |
docker stop / docker start |
Zatrzymaj / uruchom kontener |
docker rm / docker rmi |
Usuń kontener / obraz |
docker logs -f nazwa |
Śledź logi na żywo |
docker exec -it nazwa sh |
Wejdź do kontenera |
docker images |
Lista pobranych obrazów |
docker pull obraz:tag |
Pobierz/zaktualizuj obraz |
docker system prune |
Wyczyść nieużywane zasoby |
docker stats |
Monitor zasobów |
📚 Podstawy Docker — przewodnik
← Podstawy Docker #2: Instalacja | Następny → Podstawy Docker #4: Docker Compose






