Úvod
Podman je kontejnerový engine pro spouštění a správu OCI kontejnerů v Linuxu. RedHat jej vyvíjí jako přímou alternativu k Docker, slavné platformě pro správu kontejnerů, která to všechno začala.
Tento výukový program vám pomůže porozumět tomu, jak Podman funguje, tím, že vysvětlí jeho syntaxi příkazů a poskytne příklady ze skutečného života, jak příkazy Podman používat.
Předpoklady
- Přístup do příkazového řádku/okna terminálu.
- Podman nainstalován a nakonfigurován (viz Jak nainstalovat Podman na macOS nebo Jak nainstalovat Podman na Ubuntu).
Příkazy Podman
Podman má velmi podobnou syntaxi příkazů jako Docker. Hlavní podman
po příkazu následují příkazy a možnosti správy Podman:
podman [command] [options]
Níže je tabulka obsahující všechny příkazy Podman:
Příkaz | Popis |
---|---|
attach | Připojit ke spuštěnému kontejneru pomocí jeho názvu nebo ID. |
auto-update | K aktualizaci kontejnerů použijte zásadu automatické aktualizace kontejneru. |
build | K vytvoření obrázku použijte pokyny Containerfiles. |
commit | Vytvořte nový obrázek odrážející změny provedené v kontejneru. |
container | Správa kontejnerů Podman. |
cp | Kopírování souborů/adresářů z kontejneru do místního souborového systému a naopak. |
create | Vytvořte kontejner bez jeho spuštění. |
diff | Zobrazí změny provedené v kontejneru nebo obrázku. |
events | Zobrazit události podman. |
exec | Proveďte proces uvnitř běžícího kontejneru. |
export | Vytvořte archiv tar obsahující obsah souborového systému kontejneru. |
generate | Vytvořte strukturovaný výstup na základě kontejneru, svazku nebo pod. |
healthcheck | Spravujte kontroly stavu kontejneru. |
history | Zobrazit historii obrázků. |
image | Spravujte obrázky. |
images | Seznam obrázků dostupných v místním úložišti. |
import | Importujte tarball obrázku systému souborů. |
info | Zobrazit systémové informace podman. |
init | Inicializujte kontejnery. |
inspect | Zobrazit konfiguraci kontejneru nebo obrázku. |
kill | Zabíjejte kontejnery. |
load | Načtěte obrázek dostupný v archivu kontejneru. |
login | Přihlášení do registru kontejnerů. |
logout | Odhlaste se z registru kontejnerů. |
logs | Zobrazit protokoly kontejneru. |
machine | Spravujte virtuální počítač Podman. |
manifest | Vytvářejte a spravujte seznamy manifestů a indexy obrázků. |
attach | Připojte kořenový souborový systém kontejneru nebo vypište aktuálně připojené kontejnery. |
network | Spravujte sítě Podman. |
pause | Pozastavte procesy kontejneru. |
play | Přehrajte kontejner, svazek nebo pod. |
pod | Správa modulů Podman. |
port | Uveďte seznam mapování portů nebo mapování specifické pro kontejner. |
ps | Seznam spuštěných kontejnerů. |
pull | Zkopírujte obrázek z registru do místního úložiště. |
push | Přenést obrázek z místního počítače do zadaného cíle. |
rename | Přejmenujte kontejner. |
restart | Restartujte kontejner. |
rm | Odeberte kontejner. |
rmi | Odeberte obrázek z místního úložiště. |
run | Spusťte příkaz v kontejneru. |
save | Uložte obrázek do místního souboru. |
search | Hledejte obrázek v registru. |
secret | Manipulujte s tajemstvími. |
start | Spusťte kontejner. |
stats | Zobrazit statistiky využití zdrojů. |
stop | Zastavte kontejner. |
system | Spravujte systémy Podman. |
tag | Přiřaďte místnímu obrázku název. |
top | Zobrazit procesy běžící v kontejneru. |
unmount | Odpojte kořenový souborový systém kontejneru. |
unpause | Zrušit pozastavení procesů kontejneru. |
unshare | Spusťte proces v novém uživatelském jmenném prostoru. |
untag | Odeberte značky z místního obrázku. |
version | Zobrazit informace o verzi. |
volume | Spravujte objemy kontejnerů. |
wait | Počkejte, až se kontejner zastaví. |
Výukový program pro Podman
Přestože je Podman primárně kontejnerový engine – je určen k vytváření a spouštění OCI kontejnerů, uživatelé mohou používat také podman
příkazy pro správu obrázků kontejnerů.
Následující části vysvětlují, jak používat Podman k vytváření a manipulaci s obrázky, kontejnery a pody.
Zobrazení příručky nápovědy Podman
Na dokumentaci Podman můžete rychle odkazovat pomocí příkazového řádku. Chcete-li zobrazit dostupné podman
příkazy ve vašem terminálu zadejte:
podman help
Chcete-li zobrazit celou příručku Podman, použijte příkaz man:
Obrázky Podman
Vytváření a správa obrazu v Podman se provádí pomocí Buildah, nástroje pro vytváření obrazů, který používá rozhraní coreutils nižší úrovně. Když uživatel spustí podman
příkaz související s obrázky, Podman zavolá Buildah, aby provedla akci.
Následující části demonstrují některé důležité příkazy pro správu obrázků.
Vyhledávání obrázků
Vyhledejte v registrech dostupné obrázky pomocí search
příkaz.
podman search [search-term]
Omezte počet výsledků pomocí --limit
volba. Chcete-li například vytvořit tři výsledky pro „centos“ hledaný výraz, zadejte:
podman search --limit 3 centos
Zkontrolovat obrázek
Před vytažením obrázku Podman je dobré si jej prohlédnout. Použijte podman inspect
příkaz a systém vydá metadata obrazu, jako je velikost souboru, architektura, OS atd.
podman inspect [repository or image ID]
Použijte --format
pomocí podman inspect
příkaz k získání konkrétních metadat. V příkladu níže vrací příkaz pouze popis obrázku:
podman inspect --format=’{{.Labels.description}}’ [image ID]
Stahování obrázků
Vytahování obrázků z online úložišť se provádí pomocí podman pull
příkaz. Syntaxe je:
podman pull [registry/image]
Příklad ilustruje stažení obrázku z fedoraproject.org registr:
Spuštěné obrázky
Spusťte obrázky Podman pomocí podman run
:
podman run [image]
Pokud obrázek není lokálně dostupný, Podman jej stáhne z online registru a poté jej spustí jako kontejner.
Prohlížení obrázků
podman images
dílčí příkaz se používá k výpisu místně dostupných obrázků:
podman images
Použijte možnosti k zúžení výsledků vyhledávání. --filter
volba filtruje výstup na základě podmínek, které zadáte. Například následující příkaz hledá všechny obrázky obsahující "redhat" v názvu:
podman images --filter reference=redhat
Vytváření vlastních obrázků
Chcete-li vytvořit vlastní obrázky s Podmanem, potřebujete dockerfile nebo kontejnerový soubor. Tyto soubory obsahují pokyny, které nástroj Buildah používá k vytvoření obrázku.
Vytváření souborů se provádí pomocí podman build
příkaz. Chcete-li například vytvořit obrázek z adresáře obsahujícího instrukční skript, spusťte následující příkaz:
podman build .
Buildah shromažďuje potřebný kontext souboru a vytváří obraz.
Odebrání obrázků
podman rmi
příkaz se používá k odstranění obrázků z místního úložiště. Před odstraněním obrázku Podman se ujistěte, že všechny související nádoby byly zastaveny a odstraněny.
Odstraňte obrázek pomocí podman rmi
příkaz následovaný názvem obrázku nebo ID:
podman rmi [image-name-or-id]
Výstup potvrzuje, že obrázek byl odstraněn.
Kontejnery Podman
Vytváření a správa kontejnerů je hlavní funkcí společnosti Podman. V části níže naleznete některé z nejběžnějších příkazů pro správu kontejnerů.
Spuštěné kontejnery
podman run
příkaz má stejné funkce jako docker run. Možnosti, které následují za příkazem, závisí na typu spouštěného kontejneru. Níže uvedený příklad ukazuje spuštění httpd například pomocí obrázku dostupného na docker.io
úložiště:
podman run -p 8080:80/tcp docker.io/library/httpd
Příkaz spustí kontejner a zobrazí jeho příkazový řádek.
Ukončete výzvu kontejneru stisknutím Ctrl + C . Tento příkaz ukončí kontejner.
Spuštění kontejnerů na pozadí
Chcete-li přeskočit výzvu kontejneru a spustit kontejner na pozadí, použijte následující syntaxi:
podman run -dt -p 8080:80/tcp docker.io/library/httpd
Pokud se kontejner úspěšně spustí, výstup příkazu zobrazí dlouhé ID kontejneru.
Připojení ke kontejnerům
Zadejte kontejner s podman attach
příkaz:
podman attach [container-name-or-id]
Příklad ukazuje připojení ke spuštěnému kontejneru Alpine Linux pomocí ID kontejneru.
Zobrazení běžících kontejnerů
Zobrazte aktuálně spuštěné kontejnery pomocí ps
příkaz:
podman ps
Výstup příkazu zobrazuje seznam obsahující základní informace o spuštěných kontejnerech.
Automatické mazání kontejnerů po zavření
Použijte --rm
možnost s podman run
pro automatické odstranění kontejneru:
podman run --rm -dt -p 8080:80/tcp alpine:latest
Spouštění a zastavování kontejnerů
Použijte start
a stop
příkazy ke spuštění a zastavení existujících kontejnerů.
podman start [container-id]
Výstup zobrazuje ID kontejneru.
podman stop [container-id]
Zobrazí se ID zastaveného kontejneru.
Přiřazování názvů kontejnerům
Spuštěné kontejnery můžete pojmenovat pomocí volby --name
pomocí podman run
příkaz. Chcete-li například pojmenovat kontejner Alpine Linux, použijte následující příkaz:
podman run --name AlpineTest -dt -p 8080:80/tcp alpine:latest
Obrázek níže ukazuje, že podman run
byl úspěšný. Podman ps
příkaz uvádí spuštěné kontejnery Podman a název je viditelný v NAMES
sloupec.
Zobrazení protokolů kontejnerů
Zobrazte protokoly kontejneru v době spuštění pomocí podman logs
příkaz.
podman logs [container-name-or-id]
Použijte -l
příznak pro zobrazení protokolů pro nejnovější kontejner.
Odebrání kontejnerů
Chcete-li odstranit kontejner Podman, nejprve se ujistěte, že byl kontejner zastaven. Poté použijte podman rm
příkaz následovaný názvem nebo ID kontejneru.
podman rm [container-name-or-id]
Níže uvedený příklad ukazuje odstranění testuAlpineTest kontejner.
Chcete-li odstranit běžící nebo nepoužitelný kontejner, přidejte -f možnost.
podman rm -f [container-name-or-id]
Chcete-li odstranit více kontejnerů najednou, uveďte ID kontejnerů oddělené mezerou:
podman rm [container-1-id container-2-id container-3-id]
Podman Podman
Pody jsou skupiny kontejnerů, které sdílejí zdroje. Podman pods jsou funkcí, která odlišuje Podman od Docker. Následující sekce ilustrují některé běžné operace pod v Podman.
Výpis podů
Pomocí příkazu níže zobrazíte seznam všech modulů dostupných v systému:
podman pod ls
Seznam zobrazuje ID podu, název, stav, čas vytvoření, infra ID a počet kontejnerů, které obsahuje.
Vytvoření prázdných modulů
Vytvořte prázdný modul v Podman pomocí následující syntaxe:
podman pod create
Výstup zobrazuje ID nově vytvořeného modulu.
Přidávání kontejnerů do modulů
Chcete-li přidat kontejner do podu, použijte --pod
štítek s docker run
:
podman run [options] --pod [pod-name-or-id] [image]
V níže uvedeném příkladu je podu přiřazen kontejner Alpine Linux s ID e06ed089b454 :
Vytváření podů s kontejnery
Podman může vytvořit kontejner a přidat jej do nového podu v jediném podman run
příkaz. Syntaxe zahrnuje --pod
štítek:
podman run [options] --pod new:[pod-name] [image]
Níže uvedený příklad spouští kontejner s alpine:latest
obrázek a přidá jej do nového modulu s názvem AlpineTest :
podman pod ls
výstup příkazu zobrazuje nový modul se dvěma kontejnery.
Spouštění, zastavování a mazání modulů
Spusťte modul pomocí následujícího příkazu:
podman pod start [pod-name-or-id]
Chcete-li modul zastavit, spusťte:
podman pod stop [pod-name-or-id]
Chcete-li odstranit zastavený modul a jeho nádobu, použijte:
podman pod rm [pod-name-or-id]
Chcete-li zastavit a odstranit běžící kontejnery a poté odstranit pod, použijte -f
možnost:
podman pod rm -f [pod-name-or-id]
Chcete-li odstranit více zastavených podů jedním příkazem, uveďte ID podů oddělená mezerou:
podman pod rm -f [pod1-id pod2-id pod3-id]
Potenciální problémy s Podmanem a jak je řešit
Tato část uvádí některé běžné problémy s Podmanem a poskytuje řešení.
Nelze odhalit privilegovaný port
Podman umožňuje uživatelům bez oprávnění root spouštět kontejnery. Jsou však omezeny na přeposílání pouze na neprivilegované porty. Pokud se pokusíte předávat na privilegovaný port jako uživatel bez oprávnění root, zobrazí se následující chyba:
Řešením tohoto problému je vybrat si neprivilegovaný port nebo spustit příkaz pomocí sudo.
Problémy s vyhledáváním podman
Dalším častým problémem je podman search
příkaz vrací prázdný výstup.
Tento problém se obvykle týká /etc/containers/registries.conf
soubor. Otevřete soubor v textovém editoru:
sudo nano /etc/containers/registries.conf
Přejděte na konec souboru a ujistěte se, že Podman má registry k prohledávání.
Pokud v souboru nejsou uvedeny žádné registry, můžete přidat ty běžné, jako je RedHat, Fedora a Docker, pomocí následující syntaxe:
unqualified-search-registries=["registry.access.redhat.com", "registry.fedoraproject.org", "docker.io"]
Uložte soubor. podman search
seznam by měl být naplněn výsledky z registrovaných online registrů.
Chyba:poskytnuta neplatná konfigurace
Při přidávání kontejnerů do pod se může zobrazit následující zpráva:
Error: invalid config provided: published or exposed ports must be defined when the pod is created: network cannot be configured when it is shared with a pod
K tomuto problému dochází, když se pokusíte přidat kontejner s porty, které nebyly definovány při vytváření modulu. V současné době to Podman neumožňuje.