Podstawy Docker #1: Czym jest Docker i po co Ci to?

Zanim zainstalujesz Dockera i zaczniesz wpisywać komendy, musisz zrozumieć co to jest i dlaczego wszyscy tego używają. Ten artykuł to Twój punkt startowy — bez niego reszta serii nie będzie miała sensu.
Problem: „u mnie działa”
Wyobraź sobie sytuację: instalujesz n8n na swoim serwerze. Potrzebujesz Node.js w odpowiedniej wersji, kilku bibliotek systemowych, odpowiednich uprawnień. Wszystko działa. Potem chcesz przenieść to na inny serwer — i nagle nic nie działa, bo tam jest inna wersja Node.js, brakuje biblioteki, albo coś koliduje z inną aplikacją.
Docker rozwiązuje ten problem. Pakujesz aplikację razem ze wszystkim czego potrzebuje do jednego pudełka (kontenera) — i to pudełko działa identycznie na każdym serwerze.
Co to jest Docker?
Docker to narzędzie do konteneryzacji — pozwala uruchamiać aplikacje w izolowanych, lekkich pudełkach zwanych kontenerami.
Każdy kontener:
- Ma własny system plików, biblioteki i konfigurację
- Jest odizolowany od reszty systemu i innych kontenerów
- Działa identycznie wszędzie — na Twoim serwerze, u kolegi, w chmurze
- Uruchamia się w sekundy (nie w minuty jak maszyna wirtualna)
Kontener vs maszyna wirtualna
To najczęstsze pytanie początkujących. Różnica jest fundamentalna:
Maszyna wirtualna (VM)
Maszyna wirtualna to cały komputer w komputerze — ma własny system operacyjny, własne jądro, własną pamięć. To jakbyś postawił drugi komputer wewnątrz swojego serwera.
Kontener Docker
Kontener to lekkie pudełko z aplikacją — współdzieli jądro systemu (kernel) z hostem, ale ma własne pliki, biblioteki i konfigurację. Nie potrzebuje osobnego systemu operacyjnego.
💡 Czym jest jądro systemu (kernel)?
Jądro to najgłębsza warstwa systemu operacyjnego — zarządza sprzętem i zasobami (pamięcią, procesorem, dyskiem). Kontener korzysta z jądra Twojego serwera zamiast mieć własne — dlatego jest taki lekki i szybki.
| Cecha | Maszyna wirtualna | Kontener Docker |
|---|---|---|
| Start | Minuty | Sekundy |
| Rozmiar | Gigabajty | Megabajty |
| Zużycie RAM | Dużo (osobny OS) | Mało (współdzielone jądro) |
| Izolacja | Pełna (osobny OS) | Na poziomie procesu |
| Ile na serwerze? | Kilka | Dziesiątki/setki |
Analogia: dom vs mieszkanie
- Maszyna wirtualna = osobny dom — ma własne fundamenty, ściany, dach, instalację wod-kan. Kosztowny, ale w pełni niezależny
- Kontener = mieszkanie w bloku — ma własne ściany i drzwi (izolacja), ale dzieli fundamenty, dach i instalacje z innymi mieszkaniami. Lekki, szybki, tani
Obraz vs kontener
To kluczowe rozróżnienie, które będziesz stosować codziennie:
Obraz (image)
Obraz to przepis / szablon. Zawiera:
- System operacyjny (np. Ubuntu, Alpine)
- Zainstalowane programy (np. Node.js, Caddy)
- Pliki konfiguracyjne
- Instrukcje jak uruchomić aplikację
Obraz jest niezmienny — raz zbudowany, nie modyfikujesz go.
Kontener (container)
Kontener to uruchomiony obraz — jak gotowe danie z przepisu. Możesz:
- Uruchomić wiele kontenerów z jednego obrazu
- Każdy kontener działa niezależnie
- Kontener można zatrzymać, usunąć, uruchomić ponownie
💡 Analogia
Obraz = przepis na ciasto, kontener = upieczone ciasto. Z jednego przepisu możesz upiec wiele ciast — każde jest niezależne.
Docker Hub — sklep z obrazami
Docker Hub (hub.docker.com) to repozytorium gotowych obrazów. Znajdziesz tam tysiące aplikacji gotowych do uruchomienia jedną komendą:
- caddy — serwer webowy z automatycznym HTTPS
- postgres — baza danych PostgreSQL
- n8nio/n8n — automatyzacje n8n
- redis — cache/baza klucz-wartość
💡 Obrazy oficjalne vs community
Obrazy oficjalne (oznaczone „Docker Official Image”) są utrzymywane przez Docker lub twórców oprogramowania. Preferuj je nad obrazami community — są bezpieczniejsze i regularnie aktualizowane.
Zamiast ręcznie instalować Caddy (pobieranie, konfiguracja, zależności), po prostu uruchamiasz:
docker run -d -p 80:80 caddy
Jedna komenda — i masz działający serwer webowy.
Kiedy używać Dockera?
Docker to świetny wybór gdy:
- Stawiasz aplikacje na serwerze — n8n, Nextcloud, Gitea, bazy danych
- Chcesz łatwych aktualizacji — nowa wersja = nowy obraz, wymiana jedną komendą
- Potrzebujesz izolacji — każda aplikacja w swoim pudełku, nie kolidują ze sobą
- Chcesz powtarzalności — ten sam plik
docker-compose.ymldziała na każdym serwerze
Docker nie jest potrzebny gdy:
- Uruchamiasz prostą komendę jednorazowo
- Potrzebujesz pełnego dostępu do hardware (np. sterowniki GPU — choć Docker to wspiera, jest trudniejsze)
- Masz jedną prostą aplikację i nie planujesz niczego więcej
Podsumowanie
Zapamiętaj te 5 rzeczy:
- Docker = narzędzie do uruchamiania aplikacji w izolowanych kontenerach
- Kontener ≠ maszyna wirtualna — jest lżejszy, szybszy, współdzieli jądro systemu
- Obraz = szablon/przepis (niezmienny), kontener = uruchomiony obraz
- Docker Hub = repozytorium gotowych obrazów do pobrania
- Docker rozwiązuje problem „u mnie działa” — aplikacja w kontenerze działa identycznie wszędzie
📚 Podstawy Docker — przewodnik
Następny artykuł → Podstawy Docker #2: Instalacja Docker i Docker Compose






