GNU/Linux >> Znalost Linux >  >> Fedora

Jak nainstalovat a používat Podman ve Fedoře 34/35

Podman doplňuje Buildah a Skopeo tím, že nabízí zkušenosti podobné příkazovému řádku Docker:umožňuje uživatelům spouštět samostatné (neorganizované) kontejnery. A Podman nepotřebuje démona ke spuštění kontejnerů a podů, takže se můžeme snadno rozloučit s velkými tlustými démony. Na pozadí nic nedělají žádní démoni, což znamená, že Podman lze integrovat do systémových služeb prostřednictvím systemd .

V této příručce se naučíme, jak nainstalovat Podman do Fedory.

Související příspěvky

  • Jak nainstalovat a používat Podman v Debianu 11
  • Jak nainstalovat a používat Podman v Rocky Linux/Alma Linux/Centos 8
  • Jak nainstalovat a používat Podman v OpenSUSE Leap 15.3
  • Jak nainstalovat a nakonfigurovat docker v Rocky Linux/Centos 8
  • Začínáme s Docker Compose with Example
  • Docker jako sestavovací agent – ​​Spusťte Jenkins staví na Dockeru

Předpoklady

Chcete-li pokračovat, ujistěte se, že máte následující:

  • Aktualizovaný server/pracovní stanice Fedora
  • Přístup uživatele root nebo uživatel s přístupem sudo
  • Přístup k internetu

Obsah

  1. Zajištění aktuálnosti serveru
  2. Instalace podman
  3. Příklady příkazového řádku
  4. Runa postgres persistent container
  5. Správa kontejnerů jako systémových služeb prostřednictvím systemd a Podman

1. Zajištění aktuálnosti serveru

Pomocí tohoto příkazu zajistíte aktualizaci našich serverových balíčků

sudo dnf update -y

Ujistěte se, že jsou nainstalovány běžné balíčky

sudo dnf install -y vim

2. Instalace Podman

Podman je dostupný ve výchozích úložištích pro Fedoru. Nainstalujte jej pomocí tohoto příkazu:

sudo dnf install -y podman

Tento příkaz nainstaluje Podman a také jeho závislosti.

To je vše. Nyní můžeme hrát s Podmanem.

3. Příklady příkazového řádku

Pojďme prozkoumat spuštění Rocky Linux Container pomocí podman.

Na dockeru bychom použili tento příkaz ke spuštění rocky linuxového kontejneru:

docker run -it fedora:35 sh

Toto se nezdaří, protože neexistuje žádný docker příkaz na mém počítači Fedora. Docker můžeme nahradit podmanem:

podman run -it fedora:35 sh

Spusťte několik příkazů, abychom potvrdili, že funguje podle očekávání:

$ podman run -it fedora:35 sh
Resolved "fedora" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
Trying to pull registry.fedoraproject.org/fedora:35...
Getting image source signatures
Copying blob 791199e77b3d done
Copying config 1b52edb081 done
Writing manifest to image destination
Storing signatures
sh-5.1# whoami
root
sh-5.1# exit
exit

Chcete-li zkontrolovat stav kontejneru, použijte podman ps příkaz

$ podman ps -a
CONTAINER ID  IMAGE                                 COMMAND     CREATED         STATUS                     PORTS       NAMES
cd8f63c2e3f2  registry.fedoraproject.org/fedora:35  sh          50 seconds ago  Exited (0) 17 seconds ago              musing_ishizaka

Chcete-li kontejner smazat, použijte podman rm :

$ podman rm cd8f63c2e3f2
cd8f63c2e3f2fe5799d619104522892fca3ada2d3a5b7e4601648ac0de20cb89

Seznam obrázků:

$ podman images
REPOSITORY                         TAG         IMAGE ID      CREATED      SIZE
registry.fedoraproject.org/fedora  35          1b52edb08181  11 days ago  159 MB

Obrázek můžeme smazat pomocí obrázku podman image rm příkaz:

$ podman image rm fedora
Untagged: registry.fedoraproject.org/fedora:35
Deleted: 1b52edb0818147bea39780625ec01ab46944284acf16d8bcfa4055f8a854a9f5

Z výše uvedeného můžeme potvrdit, že příkaz podman používá stejnou syntaxi jako docker

4. Spusťte perzistentní kontejner Postgres

Dále se podívejme, jak můžeme spustit trvalý kontejner. V tomto příkladu spustíme kontejner Postgres 14 a připojíme postgresová data k místnímu svazku, aby mohl přetrvávat restarty. Vzhledem k tomu, že kontejnery jsou pomíjivé, data budou ztracena, pokud je neuložíme do místního svazku.

Vytáhněte docker.io/library/postgres:14.0-alpine obrázek

$ podman pull docker.io/library/postgres:14.0-alpine
Trying to pull docker.io/library/postgres:14.0-alpine...
Getting image source signatures
Copying blob 3da258773353 done
Copying blob 5034a66b99e6 done
Copying blob 82e9eb77798b done
Copying blob a0d0a0d46f8b done
Copying blob ccd761727716 done
Copying blob c6b2245b2f36 done
Copying blob 028554d3b6cc done
Copying blob 2c7ee7bc69e8 done
Copying config 87440f4e7f done
Writing manifest to image destination
Storing signatures
87440f4e7f9e60607dc11a4f0590a1c69b3a1c075211df478e22b0c27fb263e6

Potvrďte obrázky

$ podman images
REPOSITORY                  TAG          IMAGE ID      CREATED      SIZE
docker.io/library/postgres  14.0-alpine  87440f4e7f9e  2 weeks ago  198 MB

Zkontrolujte obrázek pomocí

$ podman inspect 87440f4e7f9e

Pojďme nastavit složku, která bude zpracovávat data Postgres, jakmile spustíme náš kontejner:

$ mkdir -p ~/apps/postgres/data

Spusťte to

podman run -d \
    -p 5432:5432 \
    -v ~/apps/postgres/data:/var/lib/postgresql/data \
    -e POSTGRES_PASSWORD=Sup3rSecre7 \
    -e POSTGRES_USER=citizix_user \
    -e POSTGRES_DB=citizix_db \
    docker.io/library/postgres:14.0-alpine

Toto je můj výstup

$ podman run -d \
    -p 5432:5432 \
    -v ~/apps/postgres/data:/var/lib/postgresql/data \
    -e POSTGRES_PASSWORD=Sup3rSecre7 \
    -e POSTGRES_USER=citizix_user \
    -e POSTGRES_DB=citizix_db \
    docker.io/library/postgres:14.0-alpine
dc5117faeb431c021f54a60e6303707fe7b48aef199fe53b751236eaf2c08136

Zkontrolujte procesy:

$ podman ps
CONTAINER ID  IMAGE                                   COMMAND     CREATED        STATUS            PORTS                   NAMES
dc5117faeb43  docker.io/library/postgres:14.0-alpine  postgres    9 seconds ago  Up 9 seconds ago  0.0.0.0:5432->5432/tcp  cool_hermann

Tímto potvrďte protokoly kontejneru. Můžete vidět, že se inicializuje db

$ podman logs dc5117faeb43 | head
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/data ... ok

Pojďme se připojit k databázi a provést nějaké operace

$ podman exec -it dc5117faeb43 /bin/bash
bash-5.1# psql -U citizix_user -d citizix_db;
psql (14.0)
Type "help" for help.

citizix_db=# select version();
                                                   version
--------------------------------------------------------------------------------------------------------------
 PostgreSQL 14.0 on x86_64-pc-linux-musl, compiled by gcc (Alpine 10.3.1_git20210424) 10.3.1 20210424, 64-bit
(1 row)

citizix_db=#

Dále prozkoumáme zabíjení a odstraňování kontejneru. Můžeme použít podman kill k zastavení nádoby. Tím se kontejner zastaví, ale stále tam bude. Použijte podman ps -a  vypsat. Chcete-li jej zcela odstranit, podman rm -f .

$ podman kill dc5117faeb43
dc5117faeb43

$ podman ps -a
CONTAINER ID  IMAGE                                   COMMAND     CREATED        STATUS                           PORTS                   NAMES
dc5117faeb43  docker.io/library/postgres:14.0-alpine  postgres    3 minutes ago  Exited (137) About a minute ago  0.0.0.0:5432->5432/tcp  cool_hermann

$ podman rm -f dc5117faeb43
dc5117faeb431c021f54a60e6303707fe7b48aef199fe53b751236eaf2c08136

5. Správa kontejnerů jako systémových služeb prostřednictvím systemd a Podman

Můžeme spravovat kontejnery podman prostřednictvím systemd. Pojďme vytvořit systemd zdrojový soubor pro manipulaci s kontejnerem postgres, který jsme právě vytvořili výše.

Vytvořte soubor postgres podman:

sudo vim /etc/systemd/system/postgres-podman.service

Přidat tento obsah

[Unit]
Description=Custom Postgres Podman Container
After=network.target

[Service]
Type=simple
TimeoutStartSec=5m
ExecStartPre=-/usr/bin/podman rm -f postgrespodman

ExecStart=/usr/bin/podman run \
    -p 5432:5432 \
    -v /home/fedora/apps/postgres/data:/var/lib/postgresql/data \
    -e POSTGRES_PASSWORD=Sup3rSecre7 \
    -e POSTGRES_USER=citizix_user \
    -e POSTGRES_DB=citizix_db \
    docker.io/library/postgres:14.0-alpine

ExecReload=-/usr/bin/podman stop postgrespodman
ExecReload=-/usr/bin/podman rm postgrespodman
ExecStop=-/usr/bin/podman stop postgrespodman
Restart=always
RestartSec=30

[Install]

Poté můžeme znovu načíst systemd katalog a spusťte službu:

sudo systemctl daemon-reload
sudo systemctl start postgres-podman

Potvrďte stav služby

$ sudo systemctl status postgres-podman
● postgres-podman.service - Custom Postgres Podman Container
     Loaded: loaded (/etc/systemd/system/postgres-podman.service; static)
     Active: active (running) since Mon 2021-11-15 05:20:35 UTC; 5s ago
    Process: 29565 ExecStartPre=/usr/bin/podman rm -f postgrespodman (code=exited, status=1/FAILURE)
   Main PID: 29596 (podman)
      Tasks: 15 (limit: 4585)
     Memory: 262.3M
        CPU: 5.362s
     CGroup: /system.slice/postgres-podman.service
             ├─29596 /usr/bin/podman run -p 5432:5432 -e POSTGRES_PASSWORD=Sup3rSecre7 -e POSTGRES_USER=citizix_user -e POSTGRES_DB=citizix_db docker.io/library/postgres:14.0-alpine
             └─29646 storage-untar / /var/lib/containers/storage/overlay/772aeee45322a287d8cfed4d3a774519a5a1bfb20750bf46584a8f7a9713fcaf/diff

Nov 15 05:20:37 fedora-client.citizix.com podman[29596]: Copying blob sha256:82e9eb77798bd506a06a9adab733c822c718be829c54d514b5789b07c0f1c164
Nov 15 05:20:37 fedora-client.citizix.com podman[29596]: Copying blob sha256:c6b2245b2f36c7d2a1e9071eeede220cca1f2e0662350115a22e7cac7f973a8c
Nov 15 05:20:37 fedora-client.citizix.com podman[29596]: Copying blob sha256:ccd761727716597fddb7d24aa4d7d68b3b638897b9351ccc295aa86407bd85e6
Nov 15 05:20:37 fedora-client.citizix.com podman[29596]: Copying blob sha256:5034a66b99e67db609bf6b4f82bea915e39a42e6f03d11889f7406b4de9e99da
Nov 15 05:20:37 fedora-client.citizix.com podman[29596]: Copying blob sha256:a0d0a0d46f8b52473982a3c466318f479767577551a53ffc9074c9fa7035982e
Nov 15 05:20:37 fedora-client.citizix.com podman[29596]: Copying blob sha256:3da258773353ad3725cb0ef73e28bd60fdd9078df3790b06b98198a86ef0424f
Nov 15 05:20:37 fedora-client.citizix.com podman[29596]: Copying blob sha256:2c7ee7bc69e85f0517dccf3edfa293c2bfc147e3794ab403fda249c2e59a58ab
Nov 15 05:20:37 fedora-client.citizix.com podman[29596]: Copying blob sha256:028554d3b6ccc72641ab3b2a68597bf04cdbb49e03bb977c69198fd35c098e87
Nov 15 05:20:37 fedora-client.citizix.com podman[29596]: Copying blob sha256:2c7ee7bc69e85f0517dccf3edfa293c2bfc147e3794ab403fda249c2e59a58ab
Nov 15 05:20:37 fedora-client.citizix.com podman[29596]: Copying blob sha256:028554d3b6ccc72641ab3b2a68597bf04cdbb49e03bb977c69198fd35c098e87

Právě jsme nastavili vlastní systémovou službu založenou na kontejneru spravovaném přes Podman!

Závěr

V této příručce se nám podařilo prozkoumat, jak nainstalovat Podman na náš server Rocky Linux/Centos 8.


Fedora
  1. Jak nainstalovat Apache Maven na Fedoru 35/34

  2. Jak nainstalovat Gradle na Fedoru 35/34

  3. Jak nainstalovat a používat Podman ve Fedoře 34/35

  1. Jak nainstalovat a používat Docker v Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat Mysql Server 8 na Fedoře 34/35

  3. Jak nainstalovat Docker na Fedoru 32 nebo 31 (a alternativy)

  1. Jak nainstalovat a používat snapy na Fedoře

  2. Jak nainstalovat Skype na Fedoru 35/34

  3. Jak nainstalovat Mongodb 5 na Fedoru 34/35