Czym jest Docker i do czego służy — to pytanie pada zawsze wtedy, gdy w dokumentacji aplikacji zamiast instrukcji instalacji pojawia się jedna linijka z poleceniem docker run. Odpowiedź na pytanie, czym jest Docker i do czego służy, sprowadza się do jednego zdania: to platforma, która pakuje aplikację razem z bibliotekami, zależnościami i konfiguracją w izolowaną paczkę zwaną kontenerem, uruchamianą identycznie na laptopie programisty, na serwerze testowym i na maszynie produkcyjnej. Zamiast godzin spędzonych na dopasowywaniu wersji PHP, Node.js czy bibliotek systemowych dostajesz środowisko, które startuje w kilka sekund i zachowuje się tak samo wszędzie. Docker rozwiązuje klasyczny problem „u mnie działa”: jeśli obraz uruchomił się poprawnie na Twoim komputerze, uruchomi się też na serwerze z tym samym jądrem Linuksa. Ta powtarzalność jest głównym powodem, dla którego konteneryzacja stała się standardem w zespołach każdej wielkości.
Kontener a maszyna wirtualna — gdzie leży realna różnica
Maszyna wirtualna emuluje kompletny sprzęt i uruchamia własne jądro systemu, przez co pojedyncza instancja zajmuje kilka gigabajtów dysku i startuje nawet minutę. Kontener współdzieli jądro gospodarza i izoluje wyłącznie przestrzeń procesów, sieci oraz plików, dlatego obraz aplikacji Node.js waży zwykle od 80 do 200 MB.
Konsekwencja jest praktyczna: na serwerze z 4 GB RAM zmieścisz trzy, może cztery maszyny wirtualne, ale spokojnie kilkanaście kontenerów. Każdy z nich dostaje własny zestaw bibliotek, więc aplikacja wymagająca PHP 7.4 działa obok usługi na PHP 8.3 bez konfliktów wersji i bez ręcznego kompilowania rozszerzeń.
Izolacja kontenera jest jednak słabsza niż w hipernadzorcy — proces wciąż korzysta z jądra hosta. Dla środowisk współdzielonych oznacza to konieczność dodatkowych zabezpieczeń: uruchamiania procesów bez uprawnień roota, limitów pamięci i CPU oraz regularnej aktualizacji obrazów bazowych, w których łatane są luki bibliotek systemowych.
Kiedy maszyna wirtualna wygrywa
Jądro decyduje o wszystkim. Kontener z Windows Server nie ruszy na hoście z Linuksem, a aplikacja wymagająca własnych modułów jądra albo pełnej kontroli nad sterownikami potrzebuje wirtualizacji. W takich przypadkach typowy układ to maszyna wirtualna jako baza i Docker uruchomiony dopiero wewnątrz niej.
Obraz, kontener, rejestr — trzy pojęcia wyjaśniające całą resztę
Odpowiedź na pytanie, czym jest Docker i do czego służy, staje się oczywista po rozłożeniu platformy na części. Obraz to zamrożony szablon systemu plików zbudowany z warstw. Każda instrukcja w pliku Dockerfile — instalacja pakietu, skopiowanie kodu, ustawienie zmiennej — tworzy nową warstwę współdzieloną między obrazami.
Kontener to uruchomiona instancja obrazu z dopisaną warstwą zapisu. Usunięcie kontenera kasuje tę warstwę, dlatego bazy danych i pliki użytkowników montuje się jako wolumeny leżące poza kontenerem. Ten podział na warstwę niezmienną i dane trwałe jest fundamentem przewidywalnych wdrożeń i bezbolesnych aktualizacji.
Rejestr przechowuje obrazy. Docker Hub udostępnia publiczne repozytoria za darmo, plany prywatne zaczynają się od kilku dolarów miesięcznie, a alternatywą jest własny rejestr postawiony na serwerze za 20–40 zł miesięcznie. Polecenie docker pull nginx:1.25 pobiera dokładnie tę wersję obrazu, bez żadnych niespodzianek.
Kolejność instrukcji w Dockerfile decyduje o czasie budowania. Zależności instaluj przed skopiowaniem kodu źródłowego — wtedy zmiana jednego pliku PHP nie unieważnia warstwy z pakietami, a przebudowa obrazu skraca się z trzech minut do kilkunastu sekund, co przy kilkudziesięciu wdrożeniach dziennie ma realne znaczenie.
| Element | Rola | Trwałość danych |
|---|---|---|
| Dockerfile | Przepis na budowę obrazu | Plik w repozytorium |
| Obraz | Zamrożony szablon warstw | Niezmienny |
| Kontener | Uruchomiona instancja obrazu | Znika po usunięciu |
| Wolumen | Magazyn danych poza kontenerem | Trwały |
| Rejestr | Repozytorium gotowych obrazów | Zdalny, wersjonowany |
Gdzie uruchomić kontenery — hosting współdzielony, VPS czy chmura
Pierwsza decyzja dotyczy warstwy sprzętu. Pytanie, czym różni się VPS od hostingu współdzielonego, ma tu bardzo konkretną odpowiedź: na koncie współdzielonym nie masz dostępu do roota ani do demona Dockera, więc kontenerów po prostu nie uruchomisz. VPS z pełnym dostępem SSH kosztuje od około 25 zł miesięcznie.
Wybór maszyny zależy od obciążenia. Zastanawiając się, jak wybrać hosting pod WordPress w wersji kontenerowej, licz po 512 MB RAM na kontener PHP-FPM, kolejne 512 MB na MariaDB i 128 MB na reverse proxy — sklep z kilkuset produktami mieści się na instancji 4 GB za 60–90 zł.
Migracja bywa prostsza, niż się wydaje. Gdy zastanawiasz się, jak przenieść stronę na inny hosting, kontenery redukują problem do trzech kroków: zrzut bazy poleceniem docker exec, kopia wolumenu z plikami i uruchomienie tego samego pliku docker-compose.yml na nowym serwerze. Konfiguracja PHP jedzie razem z obrazem.
Docker Compose zamiast ręcznych poleceń
Jeden plik YAML opisuje wszystkie usługi: aplikację, bazę danych, cache Redis i reverse proxy. Polecenie docker compose up -d startuje komplet w kilkanaście sekund, a docker compose down go zatrzymuje. Ten sam plik trafia do repozytorium i staje się żywą dokumentacją całej infrastruktury.

Domena, DNS i certyfikat — co ustawić, zanim kontener zobaczy świat
Kontener bez poprawnej domeny pozostaje niewidoczny. Odpowiedź na pytanie, jak sprawdzić kto jest właścicielem domeny, kryje się w bazie WHOIS rejestru NASK, która pokazuje status wpisu oraz datę wygaśnięcia. Procedura opisująca, jak przedłużyć domenę po wygaśnięciu, daje zwykle 30 dni okresu karencji na wniesienie opłaty.
Ruch kierujesz rekordami. Krótka instrukcja mówiąca, jak skonfigurować rekordy DNS domeny, sprowadza się do wpisania rekordu A z adresem IP serwera oraz kilku wpisów pomocniczych. Na pytanie, co to jest rekord CNAME, odpowiedź brzmi: alias wskazujący jedną nazwę na drugą, przydatny przy subdomenach obsługiwanych przez to samo proxy.
Szyfrowanie załatwia proxy. Praktyczna ścieżka opisująca, jak zainstalować certyfikat SSL na serwerze, w świecie kontenerów oznacza uruchomienie Traefika lub Caddy, które same pobierają darmowy certyfikat SSL Let’s Encrypt i odnawiają go co 90 dni bez ingerencji administratora, co eliminuje najczęstszą przyczynę awarii HTTPS.
Zmiana domeny albo przejście na HTTPS wymaga porządku w przekierowaniach. Klasyczny sposób, jak ustawić przekierowanie 301 w htaccess, działa w kontenerze z serwerem Apache, ale przy proxy stojącym przed aplikacją regułę lepiej przenieść do konfiguracji Nginx, żeby nie duplikować logiki w dwóch miejscach.
- Rekord A kierujący domenę na adres IP serwera z kontenerami
- Rekord CNAME dla subdomeny www wskazujący nazwę główną
- Przekierowanie 301 z HTTP na HTTPS ustawione w jednym miejscu
- Automatyczne odnawianie certyfikatu włączone i przetestowane
- Kopia wolumenów wykonywana codziennie poza serwerem produkcyjnym
Docker w codziennej pracy — od laboratorium po sieć domową
Najczęstsze zastosowanie to lokalne środowisko pracy. Kontenery pozwalają trzymać dziesięć projektów z różnymi wersjami baz danych bez zaśmiecania systemu operacyjnego. Drugie zastosowanie to serwer domowy: Nextcloud, Home Assistant i Pi-hole uruchomione jako trzy kontenery na mini-PC pobierającym około 10 W mocy.
Kontenery są też wygodnym narzędziem diagnostycznym. Obraz z serwerem iperf3 odpowiada na pytanie, jak sprawdzić prędkość internetu rzetelnie — mierzysz przepustowość między własnymi urządzeniami, bez wpływu przeciążonych serwerów testowych. Wynik przy połączeniu kablowym 1 Gb/s powinien mieścić się w przedziale 930–950 Mb/s.
Pomiar często obnaża problem po stronie sieci bezprzewodowej. Zanim zaczniesz szukać, jak wzmocnić sygnał wifi w domu, uruchom kontener z narzędziem do skanowania kanałów — zmiana kanału na mniej obciążony albo przejście na pasmo 5 GHz daje zwykle większy zysk niż wzmacniacz za 150 zł.
Trzeci obszar to automatyzacja wdrożeń. W potoku CI ten sam obraz przechodzi testy, trafia do rejestru i ląduje na produkcji — właśnie na tym przykładzie najlepiej widać, czym jest Docker i do czego służy w skali zespołu, a nie pojedynczego laptopa programisty.
Jak zacząć pracę z Dockerem bez własnego serwera?
Wystarczy komputer z 8 GB RAM. Docker Desktop działa na Windowsie, macOS i Linuksie, jest darmowy do użytku prywatnego oraz dla mniejszych firm, a instalacja zajmuje kilkanaście minut. Zacznij od uruchomienia gotowego obrazu — polecenie docker run -d -p 8080:80 nginx postawi serwer WWW dostępny pod adresem localhost:8080. Kolejny krok to własny Dockerfile z aplikacją w Pythonie lub PHP oraz plik docker-compose.yml łączący ją z bazą danych. Dopiero po opanowaniu tych podstaw ma sens wynajem serwera VPS za 25–50 zł miesięcznie i przeniesienie identycznej konfiguracji na maszynę zdalną. Nauka na lokalnym sprzęcie nic nie kosztuje i nie grozi awarią działającej witryny.
Czy Docker nadaje się do produkcyjnego hostowania sklepu internetowego?
Tak, pod warunkiem uporządkowania trzech obszarów: danych, kopii zapasowych i aktualizacji. Baza danych powinna leżeć na wolumenie albo w usłudze zarządzanej, nigdy w warstwie zapisu kontenera. Kopie wykonuj codziennie poleceniem docker exec z mysqldump i wysyłaj je na zewnętrzny magazyn — 100 GB przestrzeni backupowej kosztuje około 10–20 zł miesięcznie. Aktualizacja sprowadza się do zbudowania nowego obrazu, przetestowania go i podmiany kontenera, co przy poprawnej konfiguracji oznacza kilkanaście sekund przestoju. Sklep z ruchem do 20 tysięcy odsłon dziennie obsłuży maszyna z 4 rdzeniami i 8 GB RAM. Przy większym obciążeniu dokłada się kolejne repliki aplikacji ukryte za wspólnym proxy.
Co dzieje się z danymi po usunięciu kontenera?
Kontener przechowuje zmiany w cienkiej warstwie zapisu, która znika razem z nim — polecenie docker rm kasuje wszystko, czego nie zapisano poza kontenerem. Dlatego dane trwałe montuje się jako wolumeny nazwane albo katalogi hosta. Baza MariaDB z wolumenem podpiętym pod katalog danych przetrwa usunięcie i ponowne utworzenie kontenera, bo pliki leżą fizycznie na dysku serwera. To rozróżnienie najlepiej pokazuje, czym jest Docker i do czego służy: aplikacja jest wymienna i odtwarzalna z obrazu, a dane są trwałe i wymagają osobnej strategii kopii. Listę wolumenów sprawdzisz poleceniem docker volume ls, a ich zawartość skopiujesz zwykłym archiwum tar.

