GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat Podman na Debian 11

Podman, vyvinutý společností RedHat, je bezplatný kontejnerový engine bez démonů s otevřeným zdrojovým kódem navržený jako náhrada za populární runtime modul Docker. Stejně jako Docker usnadňuje vytváření, spouštění, nasazování a sdílení aplikací pomocí obrázků kontejnerů a kontejnerů OCI ( Open Container Initiative ). Podman používá uživatelské a síťové jmenné prostory a Ve srovnání s Dockerem je Podman považován za izolovanější a bezpečnější. Většina příkazů v Dockeru bude fungovat v Podmanu. a tak pokud jste obeznámeni se spouštěním příkazů Dockeru, používání podman bude hračka.

V této příručce se naučíme, jak nainstalovat podman na Debian 11 Bullseye.

Nainstalujte Podman na Debian 11

Balíčky, knihovny a závislosti podman jsou již hostovány v oficiálních repozitářích Debianu. Proto můžete snadno nainstalovat podman pomocí správce balíčků APT.

Nejprve aktualizujte seznamy balíčků:

$ sudo apt update

Dále nainstalujte kontejnerový engine podman následovně:

$ sudo apt install podman

Až budete vyzváni k pokračování, napište 'Y' a stiskněte ENTER.

Chcete-li ověřit nainstalovanou verzi Podman, spusťte:

$ podman --version

Chcete-li získat další podrobnosti o kontejnerovém enginu podman, spusťte příkaz:

$ sudo podman info

Měli byste vidět záplavu výstupu se složitými detaily, jako jsou ty, které máme níže.

Nakonfigurujte registry Podman

Soubor registru registry.conf je konfigurační soubor, který určuje registry kontejnerů, které se mají použít, kdykoli chcete odeslat nebo stáhnout obraz. Úplná cesta k souboru je /etc/containers/registries.conf . Existují různé registry kontejnerů, včetně centra Docker, Quay.io, RedHat a mnoha dalších.

Soubor můžete zobrazit pomocí textového editoru, jak je uvedeno

# sudo /etc/containers/registries.conf

V Dockeru je jediným registrem kontejnerů Docker Hub. Podman nabízí uživatelům větší svobodu vyhledávání a stahování obrázků z libovolného registru. Seznam registrů kontejnerů můžete definovat přidáním následujícího řádku.

unqualified-search-registries = [ 'registry.access.redhat.com', 'registry.redhat.io', 'docker.io']

Při spuštění podman search nebo podman pull podman bude kontaktovat tyto registry počínaje prvním v tomto pořadí. Uložte změny a ukončete soubor.

Vyhledávání obrázků

Před stažením obrázků kontejnerů je rozumné vyhledat jejich dostupnost v různých registrech.

Například

$ sudo podman search nginx

Výstup vám nabídne množství informací včetně názvu registru, názvu obrázku a stručného popisu.

Přihlášení do registru

Než začnete stahovat nebo vkládat obrázky, musíte se přihlásit do registru. V níže uvedeném příkladu se přihlašuji ke svému účtu Redhat, který mi ve skutečnosti umožňuje přístup do registru.

$ sudo podman login registry.access.redhat.com

Chcete-li se odhlásit z registru, spusťte příkaz:

$ sudo podman logout registry.access.redhat.com

Vytažení obrázku

Chcete-li stáhnout obrázek, použijte syntaxi:

$ sudo podman pull image_name

Chcete-li například stáhnout oficiální obrázky sestavení Nginx, spusťte příkaz:

$ sudo podman pull docker.io/library/nginx

Zkusme vytáhnout jiný obrázek. Obrázek Official MongoDB vytáhneme následovně.

$ sudo podman pull docker.io/library/mongo

Výpis obrázku

Chcete-li zobrazit všechny obrázky, zadejte příkaz.

$ sudo podman images

Vytvořte kontejner z obrázku

Nyní, když máme naše obrazy umístěné v systému Debian, můžeme spustit kontejner pomocí zobrazené syntaxe. Volba -d spustí kontejner na pozadí a --name volba určuje vlastní název kontejneru

$ sudo podman run -d  --name container_name  image

Chcete-li například spustit na pozadí kontejner s názvem webserv1 z obrázku Nginx, spusťte příkaz:

$ sudo podman run  -d --name webserv1 docker.io/library/nginx

Ze stejného obrázku můžete spustit více kontejnerů. Spusťte další kontejner s názvem webserv2 ze stejného obrazu Nginx.

$ sudo podman run -d --name webserv2  docker.io/library/nginx

Výpis kontejnerů

V této části se podíváme na různé příkazy, které můžete použít s kontejnery.

Chcete-li zkontrolovat kontejnery, které jsou aktuálně spuštěny, zadejte příkaz:

$ sudo podman ps

Výstup je prezentován ve sloupcích, které poskytují informace, jako je ID kontejneru, název OBRÁZKU, příkaz spouštějící kontejner, datum vytvoření a stav.

Chcete-li zobrazit seznam všech kontejnerů včetně těch, které byly ukončeny, spusťte:

$ sudo podman ps -a

Zastavení kontejneru

Chcete-li zastavit kontejner, použijte syntaxi

$ sudo podman stop CONTAINER_ID

NEBO

$ sudo podman stop container_name

V příkladu níže jsem zastavil první kontejner uvedený pomocí jeho ID kontejneru

$ sudo podman stop 9daeaabdfdfc

Zastavení kontejneru můžete ověřit pomocí podman ps příkaz. Jasně vidíme, že po zastavení obrázku máme spuštěný pouze 1 obrázek.

podman ps -a příkaz vypíše oba kontejnery, které obsahují kontejner, který byl právě zastaven.

$ sudo podman ps -a

Spuštění kontejneru

Ke spuštění kontejneru použijte syntaxi:

$ sudo podman start CONTAINER_ID

NEBO

$ sudo podman start container_name

Chcete-li například spustit webserv1, spusťte:

$ sudo podman start webserv1

Přístup k plášti kontejneru

Přístup k shellu kontejneru je nejlépe demonstrován kontejnerem operačního systému.

Zde si stáhneme nebo vytáhneme obrázek Ubuntu:

$ sudo podman pull docker.io/library/ubuntu

Z obrázku vytvoříme nebo spustíme kontejner a získáme přístup do shellu pomocí -it možnost.

$ sudo podman run --name ubuntu -it docker.io/library/ubuntu  /bin/bash
  • -i, –interactive Ponechá STDIN otevřený, i když není připojen
  • -t, –tty Přiděluje pseudo-TTY. Výchozí hodnota je false

Zkontrolujte protokoly kontejneru

Chcete-li zkontrolovat protokoly kontejneru, použijte syntaxi:

$ sudo podman logs container_name

Například:

$ sudo podman logs webserv2

Zobrazit statistiky kontejneru

Chcete-li zobrazit statistiky všech běžících kontejnerů, spusťte:

$ sudo podman stats

Kontrola kontejneru

Chcete-li vytisknout složité podrobnosti o kontejneru, použijte možnost kontroly:

$ sudo podman inspect webserv2

Tím se vytiskne dlouhý výstup ve formátu JSON.

K filtrování výstupu použijte volbu --format. Například k vytištění IP adresy běhu kontejneru webserv2

$ sudo podman inspect webserv2 --format '{{.NetworkSettings.IPAddress}}'

Poté můžete zadat další informace o IP, například pomocí curl k načtení hlaviček HTTP.

$ curl -I ip-address

Odstranění kontejneru

Chcete-li kontejner úplně odstranit nebo odstranit, nejprve jej zastavte, pokud běží, a nakonec jej vyjměte. V tomto příkladu jsme zastavili a odstranili kontejner websev1.

$ sudo podman stop webserv1

Poté vyjměte zastavenou nádobu.

$ sudo podman rm webserv1

Odstranění obrázku

Chcete-li odstranit obrázek, nejprve se ujistěte, že jste zastavili a odstranili všechny kontejnery, které byly z obrázku spuštěny. Dále použijte rmi možnost, jak je uvedeno.

$ sudo podman rmi image_name

Chcete-li například odebrat obrázek ubuntu, spusťte příkaz:

$ sudo podman rmi  docker.io/library/ubuntu

Nainstalujte nejnovější verzi Podman – kompilace ze zdroje

Nejnovější verzi Podmana můžete otestovat instalací vývojové verze ze zdroje.

01. Vytvářejte a spouštějte závislosti

sudo apt-get install \
   btrfs-progs \
   git \
   golang-go \
   go-md2man \
   iptables \
   libassuan-dev \
   libbtrfs-dev \
   libc6-dev \
   libdevmapper-dev \
   libglib2.0-dev \
   libgpgme-dev \
   libgpg-error-dev \
   libprotobuf-dev \
   libprotobuf-c-dev \
   libseccomp-dev \
   libselinux1-dev \
   libsystemd-dev \
   pkg-config \
   runc \
   make \
   libapparmor-dev \
   gcc \
   cmake \
   uidmap \
   libostree-dev 

02. Nainstalujte Conmon

Společným prvkem je monitor kontejneru, což je malý program v jazyce C, jehož úkolem je sledovat primární proces kontejneru.

git clone https://github.com/containers/conmon
cd conmon
make
sudo make podman
sudo cp /usr/local/libexec/podman/conmon  /usr/local/bin/

03. Nainstalujte runc

Chcete-li nainstalovat nejnovější verzi runc

git clone https://github.com/opencontainers/runc.git $GOPATH/src/github.com/opencontainers/runc
cd $GOPATH/src/github.com/opencontainers/runc
make BUILDTAGS="selinux seccomp"
sudo cp runc /usr/bin/runc

03. Nainstalujte rozhraní CNI (Container Network Interface)

Plugin CNI se používá k vložení síťového rozhraní do jmenného prostoru kontejnerové sítě.

git clone https://github.com/containernetworking/plugins.git $GOPATH/src/github.com/containernetworking/plugins
cd $GOPATH/src/github.com/containernetworking/plugins
./build_linux.sh
sudo mkdir -p /usr/libexec/cni
sudo cp bin/* /usr/libexec/cni

Nastavte síť

sudo mkdir -p /etc/cni/net.d
curl -qsSL https://raw.githubusercontent.com/containers/libpod/master/cni/87-podman-bridge.conflist | sudo tee /etc/cni/net.d/99-loopback.conf

Přidejte konfiguraci

sudo mkdir -p /etc/containers
sudo curl -L -o /etc/containers/registries.conf https://src.fedoraproject.org/rpms/containers-common/raw/main/f/registries.conf
sudo curl -L -o /etc/containers/policy.json https://src.fedoraproject.org/rpms/containers-common/raw/main/f/default-policy.json

04. Nainstalujte Podman ze zdroje

git clone https://github.com/containers/podman/ $GOPATH/src/github.com/containers/podman
cd $GOPATH/src/github.com/containers/podman
make
sudo make install
$ podman --version
podman version 4.0.0-dev

Závěr

Doufáme, že jsme vám poskytli pevný základ na vaší cestě k tomu, abyste se stali lepšími profesionály v používání podmanů k vytváření a správě kontejnerů. Tento průvodce vás provede instalací podman na Debian 11 Buster.


Debian
  1. Jak nainstalovat Debian 10 (Buster)

  2. Jak nainstalovat Python 3.9 na Debian 10

  3. Jak nainstalovat TeamViewer na Debian 10

  1. Jak nainstalovat Memcached na Debian 10

  2. Jak nainstalovat Git na Debian 9

  3. Jak nainstalovat Go na Debian 9

  1. Jak nainstalovat Pip na Debian 9

  2. Jak nainstalovat R na Debian 9

  3. Jak nainstalovat Ruby na Debian 9