Použili jste někdy Docker, ale zjistili jste, že je ve vašem systému příliš náročný na zdroje? Pokud ano, možná budete chtít vyzkoušet Podman, nový nástroj od Red Hat, který poskytuje alternativu k Dockeru.
Podman je nástroj navržený pro bezproblémové vytváření a správu kontejnerů. A v tomto tutoriálu si nainstalujete Podman a naučíte se některé základní scénáře použití. Nakonec se budete moci rozhodnout, zda je pro vás Podman tím správným nástrojem.
Připraveni? Čtěte dál a začněte spravovat kontejnery znovu!
Předpoklady
Tento tutoriál bude praktickou ukázkou. Pokud je chcete sledovat, ujistěte se, že máte následující.
- Počítač Linux – Tato ukázka používá Ubuntu 20.04 LTS, ale budou fungovat všechny distribuce Linuxu.
- Uživatel bez oprávnění root s právy sudo.
Instalace Podmana na Ubuntu
Než budete spravovat kontejnery pomocí Podman, musíte si nejprve nainstalovat Podman na svůj počítač, protože není předinstalovaný ve vaší distribuci Linuxu.
Chcete-li nainstalovat Podman na Ubuntu, začněte aktualizací správce balíčků APT a přidáním úložiště balíčků Podman.
1. Otevřete svůj terminál a spusťte apt update
níže, abyste zajistili instalaci nejnovějších aktualizací. Tento příkaz zajišťuje, že mezi vaším počítačem a úložištěm balíčků nebudou žádné neshody balíčků.
sudo apt update -y
2. Jakmile aktualizujete index balíčku, spusťte source
níže uvedený příkaz ke spuštění /etc/os-release
soubor jako skript. Tento příkaz zajistí, že váš počítač rozpozná, jakou verzi Ubuntu používáte.
Soubor os-release obsahuje informace o operačním systému, jako je název a kódové jméno. Soubor může také obsahovat další podrobnosti, jako jsou čísla verzí různých komponent (kernel, X server atd.)
source /etc/os-release
3. Spusťte sh -c echo
příkaz níže pro přidání kubic
deb úložiště balíčků do APT. Podman není k dispozici ve výchozích úložištích Ubuntu, takže před instalací budete muset přidat úložiště Podman.
Níže uvedený příkaz provede následující:
- Vytvoří nový soubor (
sh -c
) v/etc/apt/sources.list.d/
adresář. V tomto adresáři APT stahuje deb balíčky pro instalaci na váš počítač.
- Zajišťuje, že používáte konkrétní verzi Ubuntu (
{VERSION_ID}
), což je verze, kterou jste dříve získali zsource
příkaz výše v kroku dva.
- Přesměruje výstup (
>
) zapsat na konec souboru a zajistit, aby byl váš vstup zapsán do souboru správně (sources.list.d/devel:kubic:libcontainers:stable.list
).
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"
4. Nyní spusťte wget
příkaz níže pro přidání klíče úložiště do seznamu důvěryhodných klíčů APT.
Red Hat je hostitelem klíče a podepisuje jej soukromým klíčem, který se ověřuje pouze ostatním lidem, kteří mají jejich veřejný klíč. Tento klíč zajišťuje, že Red Hat a ne někdo jiný uvolní balíčky, které si stáhnete a nainstalujete.
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_${VERSION_ID}/Release.key -O- | sudo apt-key add -
5. Spusťte znovu apt update
Chcete-li zajistit, aby byl seznam balíčků APT aktuální.
sudo apt update -y
6. Dále spusťte apt install
příkaz níže k instalaci podman
.
sudo apt install podman -y
7. Nakonec spusťte níže uvedený příkaz a zkontrolujte nainstalovaný --version
společnosti Podman .
podman --version
Jak můžete vidět níže, nainstalovaná verze Podman je 3.4.2, nejnovější verze v době psaní tohoto článku, a vaše se může lišit.
Můžete také spustit níže uvedený příkaz podman inf a zobrazit další informace o své instalaci Podman.
podman info
Povolení registrů OCI
Před použitím Podman k vytvoření kontejnerů se ujistěte, že Podman může komunikovat s registry OCI. Podman podporuje více registrů OCI současně, takže můžete vytvářet kontejnery pomocí různých úložišť.
Otevřete /etc/containers/registries.conf
soubor s textovým editorem podle vašeho výběru. Tento soubor definuje všechny registry, se kterými může Podman komunikovat. Podman nahlédne do tohoto souboru, aby zjistil, ke kterým registrům se má připojit.
sudo nano /etc/containers/registries.conf
Nyní vyplňte registries.conf soubor s následujícími řádky, uložte změny a zavřete editor.
Tyto řádky konfigurují Podman tak, aby používal veřejný registr na Docker Hub (docker.io, registry.access.redhat.com ) a soukromý registr (quay.io ), což je doporučeno.
[[registry]]
prefix="[quay.io]( )"
location="internal.registry.mirror/quay"
[[registry]]
prefix="[docker.io]( )"
location="internal.registry.mirror/docker"
[[registry]]
prefix="[registry.access.redhat.com]( )"
location="internal.registry.mirror/redhat"
Spuštění Kontejnerů Podman s Podmanovými privilegii
Nyní, když jste nainstalovali Podman a nakonfigurovali registry, můžete začít spouštět kontejnery Podman s oprávněními Podman. Linuxové jádro podporuje širokou škálu kontrol oprávnění u svých systémových volání, jako jsou schopnosti.
V případě kontejnerů Podman řídí schopnosti výchozí chování uživatele root v rámci uživatelského jmenného prostoru. Můžete použít --privileged
příznak při spuštění kontejneru pro přidání všech funkcí, které ještě nejsou v kontejneru přítomny.
1. Spusťte podman run
příkaz níže k vytvoření fedora
kontejner bez schopností.
podman run -d fedora sleep 100
2. Dále spusťte níže uvedený podman top
příkaz pro výpis všech schopností.
podman top -l capeff
Jak je uvedeno níže, běžný kontejner bez kořenů má omezené možnosti.
3. Spusťte podman run
příkaz níže k vytvoření kontejneru se všemi možnostmi (--privileged
).
podman run --privileged -d fedora sleep 100
4. Nakonec znovu spusťte podman top
příkaz pro kontrolu rozdílu ve schopnostech.
podman top -l capeff
Všimnete si, že tento kontejner má k dispozici všechny funkce díky příznaku –privileged, jak je znázorněno níže.
Všimnete si, že tento kontejner má k dispozici všechny funkce díky příznaku –privileged, jak je znázorněno Příznak –privileged umožňuje, aby kontejner běžel se všemi možnostmi, nejen těmi, které již v kontejneru jsou. Tento příznak je důležitý, protože mapuje uživatelský jmenný prostor kontejneru na jmenný prostor hostitele a dává mu všechny možnosti procesů běžících na vašem systému.
Pokud při spouštění kontejneru nenastavíte příznak –privileged, bude mít kontejner omezenou sadu funkcí. V případě kontejnerů, které používají svůj vlastní uživatelský jmenný prostor, jim budete muset dát všechny možnosti explicitně.
Práce s obrázky a kontejnery Podman
Nyní, když jste se naučili, jak přidat registry OCI a možnosti pro kontejner, můžete pracovat s obrázky a kontejnery Podman. V této ukázce použijete NGINX pro obrázek k vytvoření kontejneru.
1. Spusťte podman search
příkazem níže zobrazíte seznam všech dostupných obrázků Podman pro nginx
podman search nginx
Níže můžete vidět, že získáte všechny dostupné označené obrázky pro NGINX z docker.io , quay.io a redhat.com repo, které jste přidali dříve v části „Povolení registrů OCI“:
- INDEX sloupec ukazuje, kde se obrázky nacházejí.
- OFFICIAL pomocí OK stav označuje, že obrázek v řádku je vytvořen a podporován oficiální společností. Například NGINX obrázek pomocí tlačítka OK status vytváří a podporuje její společnost NGINX. Tyto obrázky budou aktualizovány, jakmile se objeví chyby zabezpečení a aktualizace oprav.
- AUTOMATIZOVANÉ pomocí OK stav znamená, že obrázky jsou automatizované sestavení. Tyto obrázky budou aktualizovány, jakmile se objeví chyby zabezpečení a aktualizace oprav.
2. Po výběru obrázku NGINX, který chcete použít, spusťte podman
příkaz níže ke stažení (pull
) obrázek do vašeho místního počítače.
Tato ukázka používá nginx:alpine, protože je to nejmenší obrázek a může běžet pouze v paměti, což šetří čas na kroky sestavení později.
podman pull nginx:alpine
V tomto okamžiku máte nový obrázek, který můžete použít k vytvoření kontejneru nebo jej použít jako základní obrázek pro jiné kontejnery.
3. Spusťte podman images
příkaz k zobrazení informací o vašem novém obrázku
podman images
4. Nyní spusťte podman run
příkaz níže k vytvoření kontejneru z obrázku (nginx:alpine
) a spusťte nginx
serveru na tomto obrázku.
Tento příkaz provede následující:
- Interaktivně spustí kontejner (
-it
) a umožňuje připojit terminál.
- Smaže (
--rm
) kontejner poté, co vystoupí/zastaví.
- Spustí kontejner na pozadí (
--d
) a publikuje (-p
) port80
na všech rozhraních na port8080
na nádobě.
- Uveďte název kontejneru (
--name web
).
podman run -it --rm -d -p 8080:80 --name web nginx:alpine
Získáte náhodné ID kontejneru, jak je uvedeno níže, které můžete použít ke sledování/spouštění/zastavování/odstraňování kontejneru. Poznamenejte si ID kontejneru, protože se hodí při kontrole protokolů nebo zastavování konkrétního kontejneru.
5. Spusťte níže uvedený podman ps
příkaz (bez argumentů) ke kontrole, zda je váš kontejner spuštěn.
podman ps
Můžete vidět, že webový kontejner je Up a používá port 8080/TCP na vašem hostitelském počítači k odhalení svého zdroje.
6. Pro kontrolu znovu otevřete webový prohlížeč a přejděte na localhost:8080 nebo ip-vašeho-serveru:8080 , kde ip-vašeho-serveru je IP adresa vašeho serveru.
Pokud váš kontejner funguje, uvidíte výchozí uvítací obrazovku NGINX, jak je uvedeno níže.
Pokud si nejste jisti, jak je kontejner nastaven, nebo pokud má nějaké chyby, spusťte níže uvedený příkaz podman logs, abyste získali soubory protokolu pro kontejner. Nahraďte mycontainer svým ID cílového kontejneru.
podman logs mycontainer
7. Spusťte některý z podman stop
příkazy níže k zastavení kontejneru. Nahraďte mycontainer
ID cílového kontejneru nebo nahraďte web
se skutečným názvem kontejneru.
Protože jste ve čtvrtém kroku použili příznak –rm, Podman váš kontejner smaže, jakmile jej zastavíte. Toto nastavení pomáhá udržet váš pracovní prostor bez nepořádku.
# Stops the container by Container ID
podman stop mycontainer
# Stops the container by Container Name
podman stop web
8. Nakonec spusťte podman ps
příkaz k zobrazení seznamu všech kontejnerů, včetně zastaveného kontejneru.
podman ps -a
Váš kontejner byl smazán, když jste jej předtím zastavili, takže na seznamu nezískáte nic, jak je uvedeno níže.
Závěr
V tomto článku jste se naučili nainstalovat Podman a jak pracovat s obrázky a kontejnery pro nasazení. V tuto chvíli můžete nyní používat obrázky s podporou OCI z docker.io , quay.io a redhat.com úložišť k vytváření vlastních kontejnerů.
Proč si s těmito nově získanými znalostmi nepostavit své moduly Kubernetes pomocí hry Podman Play kube nebo začít používat Ansible k automatizaci kontejnerů Podman?