Podman CLI – podstawy

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.

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

Sprawdź szczegóły: https://asdevops.pl/warsztaty/

 

 


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?

  1. Podman pobiera obraz (jeśli go nie ma)
  2. Tworzy kontener
  3. Uruchamia Nginx
  4. Mapuje port 8080 → 80
  5. 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

Sprawdź szczegóły: https://asdevops.pl/warsztaty/

 

 

 

 

Darmowe warsztaty NMAP - Skanowanie Urządzeń i Portów W Sieci

X