W poprzedniej lekcji dowiedzieliśmy się, czym jest kontener. Teraz potrzebujemy narzędzi, które pozwolą nam te kontenery tworzyć, uruchamiać i zarządzać nimi. Na rynku dominują dwa rozwiązania: Docker i Podman. W tej lekcji przyjrzymy się obu, abyś mógł świadomie wybrać, z którego chcesz korzystać.

Docker: Pionier konteneryzacji

Docker to narzędzie, które spopularyzowało kontenery i na długi czas stało się synonimem tej technologii. Jego sukces wynikał z prostoty i kompletnego ekosystemu, który oferował.

Architektura Klient-Serwer

Kluczową cechą Dockera jest jego architektura oparta na modelu klient-serwer:

  1. Demon Dockera (Docker Daemon): To długo działający proces (usługa) w tle, który faktycznie zarządza kontenerami. Odpowiada za ich budowanie, uruchamianie i monitorowanie. Demon ten domyślnie wymaga uprawnień administratora (root), co przez wielu jest postrzegane jako potencjalne ryzyko bezpieczeństwa.
  2. Klient CLI Dockera: To narzędzie wiersza poleceń (docker), którego używasz w terminalu. Kiedy wpisujesz komendę, np. docker run, klient nie wykonuje jej sam, lecz wysyła polecenie do Demona Dockera.
  3. REST API: Komunikacja między klientem a demonem odbywa się poprzez REST API.

Dla użytkowników systemów Windows i macOS, najprostszym sposobem na instalację jest Docker Desktop – aplikacja, która dostarcza całe środowisko (demona, CLI) w jednym pakiecie.

Podman: Nowoczesna, bezdemonowa alternatywa

Podman (skrót od Pod Manager) to nowsze narzędzie, stworzone przez Red Hat, które od początku było projektowane jako bezpieczniejsza i bardziej nowoczesna alternatywa dla Dockera.

Architektura bez demona

Najważniejszą różnicą w Podmanie jest brak centralnego demona. Kiedy uruchamiasz komendę, np. podman run, jest ona wykonywana bezpośrednio w Twojej sesji terminala, w modelu “fork-exec”.

Jakie to ma zalety?

  • Bezpieczeństwo: Podman domyślnie działa w trybie “rootless”, czyli bez uprawnień administratora. Każdy użytkownik systemu może zarządzać własnymi kontenerami, które są w pełni odizolowane od kontenerów innych użytkowników. Brak centralnego demona z uprawnieniami root znacząco zmniejsza powierzchnię ataku.
  • Integracja z systemem: Podman lepiej integruje się z tradycyjnymi narzędziami systemowymi w Linuksie, takimi jak systemd.

Co ważne, Podman został zaprojektowany jako bezpośredni zamiennik Dockera. Oznacza to, że większość komend jest identyczna. Wielu użytkowników tworzy nawet prosty alias w swoim systemie: alias docker=podman.

Docker vs. Podman: Porównanie

CechaDockerPodman
ArchitekturaKlient-Serwer (z centralnym demonem)Bezdemonowa (fork-exec)
BezpieczeństwoDemon domyślnie wymaga uprawnień rootDomyślnie działa bez root (rootless)
Komendy CLIdocker ...podman ... (w większości identyczne)
EkosystemBardzo dojrzały (Docker Hub, Compose)Rozwijający się (wspiera podman-compose)
Pojęcie “poda”Brak natywnego wsparciaWbudowane, kluczowe pojęcie

Warto zwrócić uwagę na ostatni punkt. Podman natywnie rozumie koncept “poda”, czyli grupy kontenerów, które dzielą te same zasoby (np. sieć). Jest to fundamentalny koncept w Kubernetesie! Dzięki temu Podman jest fantastycznym narzędziem do nauki i przygotowania się do pracy z Kubernetesem.

Czego używać w tym kursie?

Oba narzędzia są świetnym wyborem, a podstawowe komendy, których nauczymy się w kolejnej lekcji, działają niemal identycznie. Celem kursu nie jest wskazanie “zwycięzcy”, ale nauczenie Cię koncepcji, które są uniwersalne.

  • Jeśli dopiero zaczynasz, Docker Desktop na Windows/macOS może być nieco prostszy w instalacji.
  • Jeśli pracujesz na Linuksie i cenisz sobie bezpieczeństwo oraz nowoczesne podejście, Podman będzie doskonałym wyborem.

W dalszej części kursu będziemy pokazywać komendy, starając się, aby były one kompatybilne z oboma narzędziami.

Podsumowanie

Docker i Podman to dwa potężne narzędzia do zarządzania kontenerami. Docker spopularyzował tę technologię i opiera się na architekturze z centralnym demonem. Podman to nowsza, bezdemonowa alternatywa, często uważana za bezpieczniejszą i bliższą koncepcjom znanym z Kubernetesa. W następnej lekcji przejdziemy do praktyki i nauczymy się podstawowych komend do pracy z obrazami i kontenerami.