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

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 *