Co to jest Podman?
Podman jest silnikiem kontenerów (container engine) open-source, który umożliwia tworzenie, uruchamianie, zarządzanie i dystrybuowanie kontenerów i obrazów kontenerowych zgodnych ze standardami OCI (Open Container Initiative). Jego oficjalna strona projektowa to https://podman.io/.
Podman został zaprojektowany jako nowoczesna alternatywa dla Dockera, szczególnie tam, gdzie liczy się bezpieczeństwo, elastyczność i integracja z narzędziami Linuksowymi.
Architektura Podmana
Bez demona – daemonless
Jedną z najważniejszych cech Podmana jest brak centralnego demona (takiego jak w Dockerze). Każde polecenie uruchamia się jako oddzielny proces i to właśnie ten proces tworzy i zarządza kontenerami.
To podejście ma kilka zalet:
- Brak jednego punktu awarii – kontenery nie zależą od działającego demona.
- Bezpieczeństwo – jeśli pojawi się problem z jednym kontenerem, nie wpływa to bezpośrednio na resztę systemu.
Rootless Containers — kontenery bez uprawnień root
Podstawową zaletą Podmana jest możliwość uruchamiania kontenerów bez uprawnień administratora (root). Dzięki temu:
- Kontenery działają jako zwykli użytkownicy systemu.
- Znacząco maleje powierzchnia ataku w przypadku wykorzystywania luk bezpieczeństwa.
- Instalacja i uruchamianie kontenerów jest bezpieczniejsze w środowiskach wieloużytkownikowych.
Kompatybilność z Dockerem
Podman oferuje CLI kompatybilne z Dockerem – większość znanych Ci komend (run, build, pull, push) działa identycznie. Dzięki temu migracja ze środowiska Docker na Podman jest łatwa.
Często można nawet ustawić alias:
alias docker=podman
co sprawia, że narzędzie jest niemal „zamiennikiem” Dockera w linii poleceń.
Narzędzia towarzyszące
Podman Desktop
To aplikacja graficzna umożliwiająca:
- zarządzanie kontenerami i obrazami z graficznego interfejsu,
- podgląd logów i stanu kontenerów,
- budowanie i wypychanie obrazów,
- zarządzanie wieloma silnikami kontenerowymi w jednym miejscu.
Podman Desktop działa na Linux, macOS i Windows, co czyni ekosystem Podmana bardziej dostępny dla deweloperów niezależnie od systemu operacyjnego.
Główne korzyści z używania Podmana
1. Bezpieczeństwo
Podman minimalizuje potrzebę działania z uprawnieniami root i ogranicza centralne punkty kontroli, co redukuje ryzyko eskalacji uprawnień.
2. Łatwość migracji z Dockera
Kompatybilność CLI i z obrazami Docker sprawiają, że przejście na Podmana jest często bezbolesne.
3. Lepsza integracja z Linux-owymi narzędziami
Podman może współpracować z systemd, dzięki czemu kontenery mogą być zarządzane jak usługi systemowe.
4. Wsparcie Kubernetes
Podman pozwala generować pliki YAML kompatybilne z Kubernetes oraz odtwarzać definicje podów, co ułatwia modernizację do środowiska orkiestracji kontenerów.
5. Elastyczność i lekkość
Brak demona, rootless mode i minimalne zależności czynią go bardziej elastycznym w różnych środowiskach — od laptopów programistów po serwery produkcyjne.
Instalacja i podstawy Podman
Zaloguj się na serwerze Linux (w moim przypadku rodzina debian, Ubuntu 24.04.3 LTS)
Zainstaluj Podman
sudo apt-get install podman -y

Sprawdź zainstalowaną wersję komendą:
podman version

Dodaj repozytoria na samym dole, edytując plik registries.conf
sudo nano /etc/containers/registries.conf
unqualified-search-registries = ['docker.io','ghrc.io','quay.io']

Zapisz plik skrótami na klawiaturze „ctrl + o”, enter oraz „ctrl + x”, enter
Uruchomienie pierwszego kontenera
Uruchom testowy kontener „hello world” komendą:
podman run hello-world

Wyszukajmy obraz kontenera na przykładzie busybox komendą:
podman search busybox
Wybierz bazowy obraz (Busybox base image.) skopiuj docker.io/library/busybox

Ściągnij najnowszą wersję obrazu (:latest) komendą:
podman pull docker.io/library/busybox

Sprawdź zawartość puli obrazów, komendą:
podman images

Interakcja z kontenerem
Uruchom kontener z flagą -it (uruchamia domyślną powłokę (/bin/sh), podłącza Twój terminal do kontenera):
podman run -it busybox
Komenda exit, wyłącza interakcję terminala z kontenerem.

Usuńmy dla przejrzystości obraz „helloł world”. W pierwszej kolejności usuwamy kontener z listy :
podman ps -a
podman rm [CONTAINER ID]
podman ps -a

Następnie usuńmy obraz:
podman images
podman rmi [IMAGE ID]
podman images


Instalacja serwera Nginx za pomocą kontenera w Podman
Wykonaj komendę:
podman run --name adm-nginx -p 8080:80 nginx
adm-nginx – Nadaje kontenerowi nazwę (możesz podać inną nazwę, wedle uznania)
Wybierz repozytorium np. docker.io/library/nginx:latest i naciśnij enter:

Co się dzieje po wykonaniu?
- Podman pobiera obraz (jeśli go nie ma)
- Tworzy kontener
- Uruchamia Nginx
- Mapuje port 8080 → 80
- Kontener działa w pierwszym planie (terminal się blokuje)

Przejdź do przeglądarki, wpisz adres IP serwera wraz z portem :8080

Serwer Nginx działa dzięki Podman !
W terminalu naciśnij kombinację klawiszy „ctrl + c”, by zatrzymać serwer, po odświeżeniu strony z Nginx, przestanie działać :

By ponownie wystartować serwer, wpisz komendę (pamiętaj podaj nazwę kontenera którą podałeś podczas instalacji):
podman start [NAZWA-KONTENERA]

Wróć na stronę i ponownie odśwież stronę z adresem IP oraz portem :8080, serwer ponownie został uruchomiony:

Ponownie zatrzymaj kontener komendą:
podman stop [NAZWA-KONTENERA]

Sprawdź historię kontenerów (zauważ kontener adm-nginx działał kilka minut a został wyłączony 50s temu), komendą :

Podsumowanie
Podman to otwartoźródłowy silnik kontenerów zgodny ze standardem OCI, zaprojektowany jako nowoczesna alternatywa dla Dockera, ze szczególnym naciskiem na bezpieczeństwo, elastyczność i integrację z systemem Linux. Kluczową cechą rozwiązania jest architektura bez demona (daemonless), w której każde polecenie działa jako osobny proces, co eliminuje pojedynczy punkt awarii i zwiększa stabilność oraz bezpieczeństwo środowiska.
Istotnym elementem Podmana jest obsługa kontenerów rootless, umożliwiająca ich uruchamianie bez uprawnień administratora. Takie podejście ogranicza ryzyko eskalacji uprawnień i zmniejsza powierzchnię ataku, co ma szczególne znaczenie w środowiskach wieloużytkownikowych i produkcyjnych.
Podman oferuje interfejs CLI kompatybilny z Dockerem, dzięki czemu większość znanych komend działa identycznie, a migracja z Dockera jest prosta i często bezproblemowa. Możliwe jest nawet użycie aliasu zastępującego polecenie docker poleceniem podman, co pozwala traktować narzędzie jako bezpośredni zamiennik w codziennej pracy.
Ekosystem uzupełnia Podman Desktop – aplikacja graficzna dostępna na Linux, macOS i Windows, umożliwiająca zarządzanie kontenerami i obrazami, podgląd logów, budowanie oraz publikowanie obrazów, a także pracę z wieloma silnikami kontenerowymi z jednego interfejsu.
Do głównych zalet Podmana należą: zwiększone bezpieczeństwo (brak centralnego demona i wsparcie dla trybu rootless), łatwość migracji z Dockera, integracja z systemd (zarządzanie kontenerami jak usługami systemowymi), wsparcie dla Kubernetes poprzez generowanie plików YAML oraz możliwość pracy w różnych środowiskach – od stacji deweloperskich po serwery produkcyjne.
W artykule przedstawiono również podstawy instalacji na systemie Ubuntu, konfigurację rejestrów obrazów oraz przykłady pracy z kontenerami: uruchamianie testowego kontenera, wyszukiwanie i pobieranie obrazów, interakcję z kontenerem w trybie terminalowym, a także zarządzanie obrazami i kontenerami (uruchamianie, zatrzymywanie, usuwanie).
Na przykładzie wdrożenia serwera Nginx pokazano praktyczne użycie Podmana: pobranie obrazu, utworzenie i uruchomienie kontenera z mapowaniem portów oraz ponowne uruchamianie i zatrzymywanie usługi. Całość obrazuje prostotę obsługi narzędzia i jego przydatność w codziennej pracy administracyjnej oraz deweloperskiej.
Bezpłatne warsztaty: NMAP – Skanowanie Urządzeń i Portów w Sieci
Dowiedz się, jak wykrywać urządzenia w sieci, skanować porty i identyfikować usługi przy użyciu narzędzia NMAP. Poznasz podstawy skanowania, analizę wyników oraz praktyczne zastosowania w audycie bezpieczeństwa i testach penetracyjnych.
Środa, 18 marca o 14:00

