Chcete spustit testovací službu, webový nástroj nebo obraz Linuxu, aniž byste přidali svůj účet do skupiny docker. Podman umí spouštět kontejnery ze sessions uživatele, s úložištěm a procesy přiřazenými k vašemu UID. Je to praktické pro čisté spuštění, ale neosvobozuje vás to od kontroly obrazu, objemů ani publikovaných portů.

Nainstalujte Podman a zkontrolujte rootless režim
Na Debianu nebo Ubuntu nainstalujte balíček z repozitářů vaší distribuce. Fedora ho také zahrnuje do svých běžných repozitářů.
sudo apt update
sudo apt install podman
podman --version
podman info --debug
Pak spusťte podman info --debug se svým obvyklým účtem, bez sudo. Výstup by měl ukazovat rootless kontext. Podman pak používá váš uživatelský prostor a rozsahy definované v /etc/subuid a /etc/subgid pro mapování identifikátorů kontejneru.
Zpráva o newuidmap, subuid nebo subgid signalizuje nedokončenou přípravu. Neobejděte chybu přepnutím přímo na root. Nejprve zkontrolujte svůj vstup pomocí následujícího příkazu a pak aplikujte metodu zdokumentovanou vaší distribucí, pokud chybí.
grep "^$USER:" /etc/subuid /etc/subgid
Spusťte první kontejner bez oprávnění
Začněte s malým obrazem a příkazem, který se sám zastaví. Tímto způsobem zkontrolujete stažení obrazu, místní úložiště a spuštění bez otevření služby na síti.
podman run --rm docker.io/library/alpine:latest echo "Podman funguje"
Možnost --rm odstraní kontejner při jeho ukončení. Obraz zůstává v mezipaměti. Chcete-li vidět obrazy a kontejnery, včetně těch, které jsou zastavené, použijte:
podman images
podman ps -a
Pro službu, která musí zůstat dostupná, jí dejte výstižný název. Tento příklad spouští nginx na pozadí a publikuje port 8080 pouze na místním počítači.
podman run -d --name web-test
-p 127.0.0.1:8080:80
docker.io/library/nginx:alpine
podman ps
curl -I http://127.0.0.1:8080
Prefix 127.0.0.1: zabraňuje vystavení tohoto testu na všech síťových rozhraních. Pokud napíšete pouze -p 8080:80, zkontrolujte výsledek pomocí podman port web-test a s ss -ltnp. Na serveru otevírejte veřejný port pouze po výběru firewallu a adresy, na které se naslouchá.
Zkontrolujte stav, logy a správně zastavte službu
Spuštěný kontejner nedokazuje, že aplikace odpovídá. Zkontrolujte jeho stav, poslední logy a jeho síťové mapování před tím, než upravíte obraz nebo konfiguraci.
podman inspect web-test --format '{{.State.Status}}'
podman logs --tail 50 web-test
podman port web-test
podman stop web-test
podman rm web-test
podman inspect zobrazuje skutečně aplikované parametry. Je to spolehlivější než opětovné přečtení příkazu zkopírovaného ve vaší historii. Také si uchovávejte název obrazu a jeho tag ve své dokumentaci. Tag latest může směřovat na jinou verzi při dalším stažení. Pro trvalé použití zvolte konkrétní verzi a naplánujte její aktualizaci.
Omezení rootless a pasti, kterým se vyhnout
- Rootless kontejner omezuje dopad na hostitele, ale nespolehlivý obraz, tajemství injektovaná jako proměnné nebo objem pro zápis zůstávají riziky.
- Vyhněte se
--privileged,--network hosta montážím citlivých adresářů. Tyto možnosti značně snižují izolaci. - Připojte data jako pouze pro čtení, když je aplikace nemusí měnit, například
-v "$HOME/site:/usr/share/nginx/html:ro". - Porty nižší než 1024, některá zařízení a některá síťová omezení vyžadují další konfiguraci. Nepřidávejte privilegium automaticky.
- Podman přijímá většinu syntaxe Dockeru, ale služby, sítě a úložiště se nemusí vždy chovat stejným způsobem. Otestujte projekt v izolovaném adresáři před migrací.
Skupina docker často poskytuje velmi široký přístup k démonu Docker. Podman rootless se vyhýbá této praxi pro kontejnery spuštěné z vašeho účtu. Chcete-li porovnat instalaci Docker motoru s tímto výběrem práv, můžete také přečíst naši příručku o Docker na Debiane.
Oficiální dokumentace Podman podrobně popisuje fungování rootless a příručka podman run uvádí možnosti sítě, objemů a identifikátorů. Začněte s jednoduchým obrazem, místním portem a objemem pouze pro čtení. Rychle zjistíte, zda je Podman vhodný pro vaše použití, než přesunete užitečnou službu.