Tento tutoriál vysvětluje, jak začít s Podmanem v operačních systémech Linux. Na konci tohoto výukového programu Podman se naučíte základy Podman, jako je vyhledávání a stahování obrázků, vytvoření nového kontejneru z obrázku, spuštění kontejneru, odstranění kontejneru a vytvoření vlastního obrázku z kontejneru a další.
Než začneme s Podmanem, ujistěte se, že jste na svůj Linux nainstalovali Podman.
- Co je Podman a jak nainstalovat Podman v Linuxu
Začněte s Podmanem
Podman poskytuje rozhraní příkazového řádku (CLI) podobné Dockeru kontejnerový motor. Podman si ve skutečnosti klade za cíl být náhradou za docker klienta poskytovaného Dockerem.
Příkazy Podman a Docker jsou téměř stejné. docker
můžete jednoduše nahradit s podman
ve většině příkazů dockeru. Například docker run
příkaz se změní na podman run
a docker build
se stane podman build
a tak dále.
Můžete dokonce vytvořit docker
alias pro podman
jako níže:
$ alias docker=podman
Od této chvíle můžete používat oba docker
a podman
příkazy současně. Pokud například spustíte docker
ps, automaticky se spustí podman
příkaz ps. Přechod z Docker na Podman se stal mnohem jednodušší!
1. Získání pomoci Podmana
První věc, kterou pravděpodobně budete chtít udělat po instalaci jakékoli aplikace, je podívat se do sekce nápovědy.
Chcete-li zobrazit příručku nápovědy Podman spolu se seznamem dostupných dílčích příkazů a obecných možností, spusťte:
$ podman --help

Chcete-li se naučit použití libovolného dílčího příkazu, například attach
, jednoduše udělejte:
$ podman připojit --help
2. Hledat obrázky
Naštěstí obrázky vytvořené Dockerem a Podmanem jsou kompatibilní se standardem OCI. Podman tak může odesílat a stahovat obrázky z registrů kontejnerů, jako je Docker Hub a Quay.io .
Vyhledejme obrázky Alpine Linux pomocí příkazu:
$ podman search alpine

Jak můžete vidět, Podman uvádí obrázky Alpine z centra Docker a Quay.
Při stahování obrázků si můžete vybrat, odkud je chcete získat.
Podobně můžete vyhledávat obrázky založené na Arch Linuxu, jak je uvedeno níže:
$ podman hledat archlinux
Docker hub and Quay má spoustu obrázků různých typů. Ať už se jedná o aplikaci nebo operační systém, najdete předpřipravené obrázky kontejnerů z těchto registrů.
3. Stáhnout obrázky
Pro účely této příručky si stáhnu základní obrázek Redhat 8 Universal (UBI).
Chcete-li stáhnout obrázek Redhat pomocí aplikace Podman, spusťte:
$ podman pull redhat/ubi8
Budete požádáni o výběr registru kontejnerů, ze kterého chcete stahovat. Vybral jsem si Docker hub. Před vybraným registrem se zobrazí malá šipka.
? Vyberte prosím obrázek:registry.fedoraproject.org/redhat/ubi8:latest registry.access.redhat.com/redhat/ubi8:latest ▸ docker.io/redhat/ubi8:latest quay.io/redhat/ubi8:latestObraz kontejneru bude stažen ze zvoleného registru.
✔ docker.io/redhat/ubi8:latestTrying vytáhnout docker.io/redhat/ubi8:latest...Getting zdrojový obraz signaturesCopying blob a50df8fd88fe udělal Kopírování blob 1cadda38f72d udělal Kopírování config 0ced1c7c9b udělal Psaní manifest na obrázek destinationStoring signatures0ced1c7c9b23d0e107c7b15d5a0017abbbcf7e64e49a4c9f9efa1b9589ca8b68![]()
Můžete si stáhnout a spustit různé typy obrázků bez ohledu na typ distribuce, který používáte. Můžete si například stáhnout a používat obrázky Alpine na hostiteli Fedory a naopak.
$ podman pull alpine
Můžete si dokonce stáhnout konkrétní verzi obrázku. Následující příkaz stáhne obrázek Ubuntu verze 20.04:
$ podman pull ubuntu:20.04Protože používáme Podman jako uživatel bez oprávnění root, všechny obrázky kontejnerů jsou uloženy v domovském adresáři uživatele, tj.
$HOME/.local/share/containers/storage
, namísto/var/lib/containers
.$ ls ~/.local/share/containers/storage/ cache libpod mounts overlay overlay-containers overlay-images overlay-layers storage.lock tmp userns.lock4. Zobrazit obrázky
Chcete-li zobrazit seznam místně stažených obrázků, spusťte:
$ obrázky podman
Ukázkový výstup:
ID OBRÁZKU ZNAČKY ÚLOŽIŠTĚ VYTVOŘENO SIZEdocker.io/library/ubuntu 20.04 1318b700e415 před 7 dny 75,2 MBdocker.io/redhat/ubi8 nejnovější 0ced1c7c9b23 před 13 dny 24ffc8 nejnovější před MB18dio. před>![]()
Jak můžete vidět, výše uvedený výstup uvádí název úložiště, kam jsme stáhli obrázky, značku obrázku, ID obrázku, kdy je obrázek vytvořen a velikost obrázku.
Pro ty, kteří by se zajímali, TAG odkazuje na konkrétní snímek obrazu Ubuntu (např. 20.04 a nejnovější). TAG je pouze doplňkový název k místnímu obrázku. ID OBRÁZKU (např. 1318b700e415) je jedinečný identifikátor obrazu Ubuntu.
5. Spustit kontejnery
Kontejner lze spustit pomocí značky obrázku nebo ID obrázku.
Začněme nový kontejner s obrázkem Redhat UBI pomocí jeho tagu:
$ podman run -it ubi8:latestTento příkaz vytvoří kontejner Redhat 8 pomocí
ubi8:latest
image a připojí kontejner k terminálu, abyste s ním mohli pracovat.Tady,
-i
: Umožňuje nám vytvořit interaktivní připojení uchopením standardu v (STDIN) kontejneru.-t
:Přiřadí nový Pseudo terminál uvnitř kontejneru Redhat 8.ubi8:latest
:Kontejner Redhat 8 s TAG „nejnovější“.
Po spuštění kontejneru se automaticky dostanete do shellu kontejneru (příkazový řádek):

Všimli jste si čísla 607a288c810d
ve výše uvedeném výstupu? Je to ID kontejneru.
Pozor: Upozorňujeme, že ID kontejneru a ID obrázku Dockeru se liší .
Nyní můžete začít hrát se svým kontejnerem.
Chcete-li se vrátit do terminálu hostitele bez opuštění kontejneru, stiskněte CTRL+p
následuje CTRL+q
.
Nyní budete odpojeni od kontejneru a vráceni zpět do konzoly hostitelského počítače. Kontejner bude stále spuštěn na pozadí.
Chcete-li opustit kontejner, jednoduše zadejte exit
z konzoly kontejneru a stiskněte klávesu ENTER:
# exit
Tento příkaz vypne spuštěný kontejner.
Pokud chcete spustit kontejner s ID IMAGE, jednoduše nahraďte TAG obrázku (ubi8:latest) ID obrázku (0ced1c7c9b23) v předchozím příkazu:
$ podman run -it 0ced1c7c9b23
Tím se spustí kontejner Redhat 8.
6. Spouštějte kontejnery na pozadí
Kontejnery můžete také spouštět na pozadí odděleně.
Ke spuštění kontejneru v odděleném režimu používáme -d
příznak:
$ podman run -it -d ubi8:latest
Když spustíme kontejner v odděleném režimu, Podman zobrazí ID kontejneru ve standardním výstupu.
a4846b2454b1eb63e6d532b0f7ef4a05ca19f965caf9cd0d4a2ce17131a05e29
Ověřte běžící kontejnery pomocí příkazu:
$ podman ps

Nyní kontejner běží na pozadí.
Můžete jej připojit, jak je popsáno v následující části.
7. Připevnění a odpojení od nádob
Jak bylo uvedeno v předchozí části, můžete se bezpečně odpojit od běžícího kontejneru stisknutím CTRL+p
následuje CTRL+q
. To vám umožní vrátit se zpět do hostitelského terminálu.
Chcete-li se znovu připojit ke kontejneru, nejprve vyhledejte spuštěné ID kontejneru nebo jeho název pomocí podman ps
příkaz:
$ podman ps
Ukázkový výstup:
ID OBRÁZKU VYTVOŘENO PŘÍKAZ KONTEJNERU STAV JMÉNA PORTŮ607a288c810d docker.io/redhat/ubi8:latest /bin/bash před 2 hodinami nahoru před 2 hodinami cool_cannon
Zde 607a288c810d
je ID kontejneru.
A pak jednoduše zadejte podman attach
příkaz následovaný ID kontejneru, jak je uvedeno níže:
$ podman připojte 607a288c810d

Můžete se k němu také připojit pomocí názvu kontejneru, jak je uvedeno níže:
$ podman připojte cool_cannon
Chcete-li se odpojit od kontejneru, jednoduše stiskněte CTRL+p
a CTRL+q
.
8. Zobrazit běžící kontejnery
Chcete-li najít nebo uvést spuštěné kontejnery, zadejte:
$ podman ps
Ukázkový výstup:
ID KONTEJNERU OBRÁZKOVÝ PŘÍKAZ VYTVOŘEN STAV PORTY NAMESe783c0202b7d docker.io/library/alpine:latest /bin/sh před 37 sekundami Nahoru před 38 sekundami optimistic_murdock
Zobrazí se pouze seznam běžících kontejnerů. Pokud chcete uvést spuštěné i zastavené kontejnery, použijte -a
vlajka.
$ podman ps -a
Ukázkový výstup:
ID KONTEJNERU OBRÁZKOVÝ PŘÍKAZ VYTVOŘEN STAV NÁZVY PORTŮ56c20497cbcd docker.io/redhat/ubi8:latest /bin/bash před 3 hodinami Ukončeno (0) před 3 hodinami wizardly_albattanid23672b15cff docker.io/redhat/ubi8:latest /bin/bash před 3 hodinami Ukončeno (0) před 3 hodinami nifty_merkle89b2c038e1ba docker.io/redhat/ubi8:latest /bin/bash před 3 hodinami Ukončeno (0) před 2 hodinami xenodochial_euler607a288c810d docker.io/redhat/ubi8:latest /bin/bash před 2 hodinami Ukončeno (0) Asi před minutou cool_cannone783c0202b7d docker.io/library/alpine:latest /bin/sh před 43 sekundami Nahoru před 43 sekundami optimistic_murdock

9. Automaticky odstranit kontejner po jeho zavření
Možná budete chtít otestovat kontejner a jednoduše jej odstranit, jakmile s kontejnerem skončíte. Pokud ano, můžete kontejner po jeho zavření automaticky odstranit pomocí --rm
příznak:
$ podman run -it --rm ubi8:latest
Jakmile opustíte kontejner, bude automaticky smazán.
10. Spouštění a zastavování kontejnerů
Jak již bylo řečeno, můžeme vytvořit více kontejnerů pomocí stejného obrázku. To je jedna z největších výhod kontejnerů ve srovnání s fyzickými nebo virtuálními stroji.
K vytvoření více nových kontejnerů můžeme použít podman run
jak je popsáno v "5. Spouštění kontejnerů" sekce.
Chcete-li spustit (zapnout) existující kontejner, jednoduše provedeme:
$ podman start
Podobně můžeme zastavit (vypnout) běžící příkaz příkazem:
$ podman stop
Dovolte mi ukázat vám příklad, abyste lépe rozuměli.
Nejprve najděte seznam všech kontejnerů:
$ podman ps -a ID KONTEJNERU OBRÁZKOVÝ PŘÍKAZ VYTVOŘEN STAV PORTŮ NÁZVY 56c20497cbcd docker.io/redhat/ubi8:latest /bin/bash před 2 dny Ukončeno (0) před 2 dny wizardly_albattani d23672b15cff docker.io/redhat/ubi8:latest /bin/bash před 2 dny Ukončeno (0) před 2 dny nifty_merkle 89b2c038e1ba docker.io/redhat/ubi8:latest /bin/bash před 2 dny Ukončeno (0) před 2 dny xenodochial_euler 607a288c810d docker.io/redhat/ubi8:latest /bin/bash před 2 dny Ukončeno (0) před 2 dny cool_cannon e783c0202b7d docker.io/library/alpine:latest /bin/sh před 2 dny Ukončeno (0) před 2 dny optimistic_murdock
Názvy kontejnerů jsou uvedeny v NAMES sekce (poslední sloupec) výše uvedeného výstupu.
Chystám se spustit kontejner s názvem wizardly_albattani
pomocí příkazu:
$ podman start wizardly_albattani
Pojďme zkontrolovat, zda je spuštěn:
$ podman ps ID KONTEJNERU PŘÍKAZ OBRÁZKU VYTVOŘEN STAV NÁZVY PORTŮ56c20497cbcd docker.io/redhat/ubi8:latest /bin/bash před 2 dny Nahoru před 7 sekundami wizardly_albattani
Ano, bylo to před 7 sekundami.
Chcete-li kontejner zastavit, jednoduše proveďte:
$ podman stop wizardly_albattani
11. Přiřadit název kontejnerům
Pokud se podrobně podíváte na výstup předchozích příkazů, Podman přiřadí náhodná jména pokaždé, když spustíte kontejner. Pokud své kontejnery nepojmenujete, Podman je pojmenuje automaticky.
Podívejte se na následující snímek obrazovky. Spustil jsem dvakrát stejný kontejner se stejným obrázkem. Poté, co kontejner opustím a podruhé jej restartuji, dostane nový název, i když jsem použil stejný obrázek.

Kontejnery dostanou nový název pokaždé, když je zavřeme a spustíme pokaždé.
Kontejnerům však můžete přiřadit statický název pomocí --name
příznak jako níže:
$ podman run -it -d --name ostechnix_redhat ubi8:latest
Výše uvedený příkaz vytvoří spuštění nového kontejneru v odděleném režimu a pojmenuje jej jako ostechnix_redhat
.
Chcete-li zobrazit seznam běžících kontejnerů, provedeme:
$ podman ps
Ukázkový výstup:
ID KONTEJNERU PŘÍKAZ OBRÁZKU VYTVOŘEN STAV NÁZVY PORTŮ6fa78116dcb7 docker.io/redhat/ubi8:latest /bin/bash před 4 sekundami Nahoru před 5 sekundami ostechnix_redhat

Všimli jste si názvu kontejneru? Dali jsme vlastní název (tj. ostechnix_redhat
) do kontejneru.
12. Vytvářejte vlastní obrázky
Podman není jen pro stahování a spouštění kontejnerů z předem nakonfigurovaných obrázků. Můžete také vytvořit své vlastní obrázky z existujících obrázků.
Nejprve spusťte existující kontejner nebo spusťte nový.
Chystám se vytvořit nový kontejner Ubuntu:
$ podman run -it 1318b700e415
Nyní jste uvnitř kontejneru.
[e-mail chráněn]:/#
Stačí nainstalovat, upgradovat nebo odebrat jakékoli aplikace v kontejneru.
Pro účely této příručky nainstaluji webový server Apache:
[email protected]:/# aktualizace apt
[email protected]:/# apt install apache2 -y
[email protected]:/# service apache2 start
Až budete hotovi, odpojte se od kontejneru a vraťte se zpět do terminálu hostitele stisknutím CTRL+p
a CTRL+q
.
Vezměte prosím na vědomí, že kontejner stále běží na pozadí!
Nyní vytvořte obrázek z existujícího kontejneru pomocí příkazu:
$ podman commit b871b0fd5810 ostechnix/ubuntu_apache
Tady,
b871b0fd5810
– ID kontejneru Ubuntu.ostechnix
– Jméno uživatele, který vytvořil kontejner.ubuntu_apache
– Název obrázku vytvořeného uživatelem ostechnix.
Nyní zkontrolujte, zda je nový obrázek vytvořen, seznamem dostupných obrázků:
$ obrázky podman
Ukázkový výstup:
ID OBRÁZKU ZNAČKY REPOSITORY CREATED SIZElocalhost/ostechnix/ubuntu_apache nejnovější 6c9b2fb66400 před 25 sekundami 222 MB docker.io/library/ubuntu 20.04 1318b700e415 před 10 dny 75,2 MBdocker.io/redhat/ubi8 nejnovější 0ced1c7c9b23 před 2 týdny 234 MBdocker.io/library/alpine nejnovější d4ffc> před 5.757 týdny MBJak vidíte na výše uvedeném výstupu, nový obrázek nazvaný
ubuntu_apache
je vytvořen.Začněme nový kontejner s tímto obrázkem:
$ podman run -it --rm --name apache_webserver -p 8080:80 localhost/ostechnix/ubuntu_apacheZde spouštím kontejner s nově vytvořeným obrázkem v předchozím kroku. Také mapuji místní port
8080
na místním systému na port80
uvnitř kontejneru.Jakmile je kontejner spuštěn, ujistěte se, že je webový server Apache spuštěn pomocí příkazu:
[email protected]:/# service apache2 startNyní otevřete prohlížeč ve svém hostitelském systému a přejděte na
http://localhost:8080
pro ověření, zda webový server Apache běží v kontejneru.![]()
13. Zobrazit protokoly kontejnerů
Chcete-li zobrazit vše, co jste dělali uvnitř svého kontejneru, můžete jednoduše zkontrolovat protokoly kontejneru pomocí příkazu:
$ podman zaznamenává apache_webserver![]()
14. Odstraňte nádoby
Ujistěte se, že jsou kontejnery zastaveny:
$ podman stop ostechnix_redhatPo zastavení kontejneru jej smažte příkazem:
$ podman rm ostechnix_redhatPodobně odstraňte všechny kontejnery jeden po druhém, jak je uvedeno výše.
Odstraňování více kontejnerů po jednom může být únavný úkol, pokud máte velký počet kontejnerů. Místo mazání jednoho po druhém můžete smazat všechny najednou. Jen buď opatrný! Neexistuje způsob, jak obnovit smazané kontejnery!
Chcete-li odstranit všechny zastavené kontejnery najednou, stačí spustit:
$ podman kontejnerové švestkyZadejte
"Y"
potvrďte a stiskněteENTER
klíč k odstranění kontejnerů.VAROVÁNÍ! Tímto odstraníte všechny neběžící kontejnery. Opravdu chcete pokračovat? [y/N] y 2124a1fbc85a6be7d516e747723129bd7bb9c39d3a54951c9a81407d30ded1ab54884f3375947026d4e87b99cb3a09e114c89120b101f5c8c1e614aca963975c56c20497cbcdd9599c2fa729277ecf679ac29f79a0b06af3ae1a135726465ba7607a288c810d2e605d9ba7590f8f7558ef5f96e87897a1cdde471ae9a74b36ad69bbd87b44cb6c9a582749f4ad010b6b273e65f9fe424058fdc0bc55b188d7e489b2c038e1baf6ac59f0da8e43a7efedc7ba73a18ed8d704c879ffdbc7eb7f28a4846b2454b1eb63e6d532b0f7ef4a05ca19f965caf9cd0d4a2ce17131a05e29aa14879baf0919323730539dd949231d5bb89ca4207dd36c02a741316e6d0f18b871b0fd5810f55e75bdd480d5fb34b09b0e293604f88896002a9368a607bf7ed23672b15cffc0a774227dc6b457a8bff5347073a112f6729d63ddf400f19dc7e783c0202b7d7a6664e731feeff4bdb57a79df79080046ed2b728df4bce789d2ebfd6210a6beedce43af0c41296e329d416128752ab603abd44c73117bf5dfd015. Odebrat obrázky
Obrázky, které již nepotřebujete, můžete smazat!
Vypište všechny stažené obrázky příkazem:
$ obrázky podmanUkázkový výstup:
ID OBRÁZKU ZNAČKY ÚLOŽIŠTĚ VYTVOŘENO VELIKOSTlocalhost/ostechnix/ubuntu_apache nejnovější 6c9b2fb66400 před 37 minutami 222 MBdocker.io/library/ubuntu 20,04 1318b700e415 10,28 librioary před 10,28 dny MBdobhatcker před 10,28 dny před 10,22 librioaryd07 /alpine nejnovější d4ff818577bc před 7 týdny 5,87 MBNyní odstraňte obrázek pomocí jeho ID obrázku nebo názvu, jako je uvedeno níže:
$ podman rmi 6c9b2fb66400Ukázkový výstup:
Neoznačeno:localhost/ostechnix/ubuntu_apache:latestSmazáno:6c9b2fb66400138738ad12643d8461fbbb859f33d3be3c35181bb9ee9b11748dPodobně odstraňte všechny ostatní nepoužité obrázky,
Pozor: Nemůžete smazat obrázek, který je aktuálně používán spuštěnými nebo zastavenými kontejnery.
Závěr
V tomto obsáhlém tutoriálu Podman jsme poskytli 15 praktických příkladů, jak začít s Podmanem v Linuxu. Pokud jste vývojář, učení Podmana je velmi důležité pro pokrok ve vaší kariéře. Naučte se důkladně používat Podman. Stojí to za váš čas!
Jak zálohovat a obnovovat data pomocí Restic v Linuxu Streamlink – Nástroj příkazového řádku pro sledování online video streamů v Linuxu, Unixu a WindowsLinux