Fillimi me Podman (Alternativa Docker) në Rocky Linux


Podman është një mjet i bazuar në Linux për vendosjen e aplikacioneve duke përdorur kontejnerët e Open Container Initiative (OCI) dhe imazhet e kontejnerëve. Ai mbështet formate të shumta të imazhit të kontejnerëve, duke përfshirë imazhet Docker dhe imazhet e kontejnerëve OCI. Gjithashtu, Podman mbështet menaxhimin e pods, grupeve të kontejnerëve.

Podman është një mjet pa demon, që funksionon si një linjë komande e vetme binare pa shërbim. Ai siguron një linjë komande të ngjashme me Docker, ju mund të përdorni një pseudonim të tillë si alias docker=podman.

Për të ekzekutuar kontejnerët dhe për të menaxhuar imazhet e kontejnerëve, Podman mbështetet në kohëzgjatjen e kontejnerëve libpod dhe OCI si runc, crun dhe runv.

Parakushtet

Në këtë udhëzues, do të mësoni se si të instaloni Podman në sistemin Rocky Linux. Gjithashtu, do të mësoni përdorimin bazë të Podman për menaxhimin e kontejnerëve dhe imazheve të kontejnerëve.

Para se të filloni, sigurohuni që të keni kërkesat e mëposhtme:

  • Sistemi operativ: Rocky Linux 8.4 (Green Obsidian)
  • Privilegjet e rrënjës: Për instalimin e paketave të reja dhe modifikimin e konfigurimit të sistemit

Tani le të fillojmë instalimin e Podman.

Instalimi i Podman në Rocky Linux

Si parazgjedhje, depoja e aplikacionit Rocky Linux ofron paketa podman.

1. Ekzekutoni komandën DNF më poshtë për të shfaqur informacione rreth paketës së podman.

sudo dnf info podman

Ju do të shihni një dalje të ngjashme si më poshtë.

Last metadata expiration check: 0:07:09 ago on Tue 16 Nov 2021 09:30:27 AM UTC.
Available Packages
Name         : podman
Version      : 3.3.1
Release      : 9.module+el8.5.0+710+4c471e88
Architecture : x86_64
Size         : 12 M
Source       : podman-3.3.1-9.module+el8.5.0+710+4c471e88.src.rpm
Repository   : appstream
Summary      : Manage Pods, Containers and Container Images
URL          : https://podman.io/
License      : ASL 2.0 and GPLv3+
Description  : podman (Pod Manager) is a fully featured container engine that is a simple
             : daemonless tool.  podman provides a Docker-CLI comparable command line that
             : eases the transition from other container engines and allows the management of
             : pods, containers and images.  Simply put: alias docker=podman.
             : Most podman commands can be run as a regular user, without requiring
             : additional privileges.
             :
             : podman uses Buildah(1) internally to create container images.
             : Both tools share image (not container) storage, hence each can use or
             : manipulate images (but not containers) created by the other.
             :
             : Manage Pods, Containers and Container Images
             : podman Simple management tool for pods, containers and images

Depoja e rrjedhës së aplikacionit ofron versionin e paketës Podman 3.3.1.

2. Instaloni Podman duke përdorur komandën DNF më poshtë.

sudo dnf install podman

Shkruani y për të konfirmuar dhe shtypni Enter për të vazhduar instalimin.

3. Nëse instalimi i Podman përfundon, verifikojeni duke përdorur komandën e mëposhtme.

podman version

Ju do të shihni një dalje të ngjashme si më poshtë.

Version:      3.3.1
API Version:  3.3.1
Go Version:   go1.16.7
Built:        Wed Nov 10 01:48:06 2021
OS/Arch:      linux/amd64

Konfigurimi i rëndësishëm i Podman

Paketa Podman vjen me disa konfigurime të paracaktuara të vendosura në drejtorinë /etc/containers.

Më poshtë janë disa konfigurime të Podman që duhet të dini.

  • policy.json. Konfigurimi i politikës për nënshkrimin e imazhit.
  • registries.conf. Lista e regjistrave të disponueshëm të imazheve të kontejnerëve, si p.sh. Regjistri Docker, regjistri i imazheve të kontejnerëve RHEL dhe regjistri i imazheve të kontejnerit Fedora.
  • storage.conf. Konfigurimi i ruajtjes së paracaktuar për Podman. Përfshin drejtuesit, vendndodhjen, etj.
  • Direktoria registries.d/. Konfigurimi i regjistrave shtesë dhe nënshkrimi i imazhit
  • Direktoria registries.conf.d/. Konfigurim shtesë për pseudonimet e imazheve të kontejnerit.

Konfiguro një përdorues të ri

Në këtë hap, do të krijoni një përdorues të ri dhe do të verifikoni instalimin e Podman duke ekzekutuar imazhin e Docker hello-world.

1. Ekzekutoni komandën e mëposhtme për të shtuar një përdorues të ri johndoe.

useradd -m -s /bin/bash johndoe
passwd johndoe

Shkruani fjalëkalimin e ri të fortë për përdoruesin johndoe.

2. Më pas, hyni si përdorues johndoe duke përdorur komandën e mëposhtme.

su - johndoe

3. Tani ekzekutoni komandën e mëposhtme për të ekzekutuar një kontejner të ri bazuar në imazhin Docker hello-world.

podman run hello-world

Do të shihni mesazhet e daljes Hello World, që do të thotë se kontejneri po funksionon por tani ka dalë.

? docker.io/library/hello-world:latest
Trying to pull docker.io/library/hello-world:latest...
Getting image source signatures
Copying blob 2db29710123e done
Copying config feb5d9fea6 done
Writing manifest to image destination
Storing signatures

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

4. Kontrolloni statusin e kontejnerëve në sistemin tuaj duke përdorur komandën Podman më poshtë

podman ps -a

Do të shihni kontejnerin bazuar në imazhin Docker hello-world me statusin aktual Exited.

CONTAINER ID  IMAGE                                 COMMAND     CREATED        STATUS                    PORTS       NAMES
cea9bbfeac4d  docker.io/library/hello-world:latest  /hello      6 minutes ago  Exited (0) 6 minutes ago              recursing_shaw

Përdorimet bazë të Podman

Në këtë hap, do të mësoni përdorimin bazë të Podman për menaxhimin e kontejnerëve dhe imazheve të kontejnerëve.

Kërkoni imazhet e kontejnerëve

1. Për të gjetur imazhe të kontejnerëve duke përdorur Podman, përdorni komandën e mëposhtme. Në këtë shembull, po kërkonin imazhe të kontejnerëve me emrin nginx.

podman search nginx

Do të shihni shumë imazhe të kontejnerëve nga regjistrat e shumtë.

2. Mund të kufizoni rezultatet e kërkimit nga çdo regjistër i imazheve të kontejnerit duke përdorur opsionin --limit n.

podman search nginx --limit 3

Tani do të shihni çdo regjistër me 3 rezultate të imazheve të kontejnerit me emrin nginx.

INDEX              NAME                                                DESCRIPTION                                      STARS       OFFICIAL    AUTOMATED
fedoraproject.org  registry.fedoraproject.org/f29/nginx                                                                 0
fedoraproject.org  registry.fedoraproject.org/f29/origin-nginx-router                                                   0
redhat.com         registry.access.redhat.com/ubi8/nginx-120           Platform for running nginx 1.20 or building ...  0
redhat.com         registry.access.redhat.com/ubi8/nginx-118           Platform for running nginx 1.18 or building ...  0
redhat.com         registry.access.redhat.com/rhscl/nginx-18-rhel7     Nginx 1.8 server and a reverse proxy server      0
centos.org         registry.centos.org/bamachrn/nginx-header                                                            0
centos.org         registry.centos.org/centos/nginx                                                                     0
centos.org         registry.centos.org/centos/nginx-110-centos7                                                         0
docker.io          docker.io/library/nginx                             Official build of Nginx.                         15839       [OK]
docker.io          docker.io/jwilder/nginx-proxy                       Automated Nginx reverse proxy for docker con...  2096                    [OK]
docker.io          docker.io/nginxinc/nginx-unprivileged               Unprivileged NGINX Dockerfiles                   54

Menaxho imazhet e kontejnerëve

Podman mbështet formatin e imazheve OCI dhe Docker. Në këtë fazë, ju do të menaxhoni imazhet e kontejnerëve me Podman.

1. Shkarkoni imazhin e kontejnerit nginx:alpine duke përdorur komandën e mëposhtme.

podman pull nginx:alpine

Zgjidhni regjistrin e kontejnerit që dëshironi të përdorni, më pas shtypni Enter për të konfirmuar. Për këtë shembull, ne do të përdorim regjistrin Docker.

? Please select an image:
    registry.fedoraproject.org/nginx:alpine
    registry.access.redhat.com/nginx:alpine
    registry.centos.org/nginx:alpine
  ? docker.io/library/nginx:alpine

Procesi i shkarkimit do të fillojë.

? docker.io/library/nginx:alpine
Trying to pull docker.io/library/nginx:alpine...
Getting image source signatures
Copying blob a4e156412037 done
Copying blob a2402c2da473 done
Copying blob e0bae2ade5ec done
Copying blob 97518928ae5f done
Copying blob 3f3577460f48 done
Copying blob e362c27513c3 done
Copying config b46db85084 done
Writing manifest to image destination
Storing signatures
b46db85084b80a87b94cc930a74105b74763d0175e14f5913ea5b07c312870f8

2. Nëse procesi i shkarkimit të imazhit të kontejnerit përfundon, verifikoni imazhet e shkarkimit duke përdorur komandën e mëposhtme.

podman images

Më poshtë është rezultati i ngjashëm që do të merrni.

REPOSITORY                     TAG         IMAGE ID      CREATED      SIZE
docker.io/library/nginx        alpine      b46db85084b8  3 days ago   24.7 MB
docker.io/library/hello-world  latest      feb5d9fea6a5  7 weeks ago  19.9 kB

Drejtoni kontejnerin me Podman

Pasi të keni shkarkuar imazhin e kontejnerit nginx:alpine, do të mësoni se si të ekzekutoni një enë të re duke përdorur Podman.

1. Ekzekutoni komandën e mëposhtme për të ekzekutuar kontejnerin bazuar në imazhin nginx:alpine.

podman run -it --rm -d -p 8080:80 --name web nginx:alpine

Do të merrni vargun dhe numrin e rastësishëm të kontejnerit.

2. Verifikoni kontejnerin që funksionon në sistemin tuaj duke përdorur komandën e mëposhtme.

podman ps

Do të shihni rezultate të ngjashme si më poshtë.

Emrat e kontejnerit web është Lart dhe ekspozon portën 8080 në kompjuterin pritës.

3. Tani hapni shfletuesin tuaj të internetit dhe shkruani adresën IP të Rocky Linux në shiritin e adresave. Për këtë shembull, makina Rocky Linux ka adresën IP 192.168.1.10.

http://192.168.1.10:8080/

Do të shihni index.html të paracaktuar nga uebi i kontejnerit, i cili bazohet në imazhin e kontejnerit nginx:alpine.

Kontrolloni regjistrat e kontejnerëve me Podman

Tani do të mësoni komandën Podman për kontrollimin e regjistrave të kontejnerëve duke përdorur opsionin logs.

1. Për të kontrolluar regjistrat e kontejnerit, mund të përdorni komandën Podman më poshtë.

podman logs web

Do të shihni regjistrat e detajuar të uebit të kontejnerit.

2. Për të kufizuar daljen e regjistrave të kontejnerëve, përdorni opsionin --tail n.

podman logs --tail 10 web

Më poshtë është prodhimi i ngjashëm i regjistrit të uebit të kontejnerit.

Ndalimi i kontejnerit me Podman

1. Për të ndaluar rrjetën e kontejnerit, përdorni komandën Podman më poshtë.

podman stop web

Tani uebi i kontejnerit do të ndalet.

2. Verifikoni duke përdorur komandën e mëposhtme.

podman ps
podman ps -a

Do të shihni që rrjeti i kontejnerit është fshirë automatikisht sepse përdorni opsionin --rm kur përdorni kontejnerin.

Konfiguro volumin e personalizuar me Podman

Në këtë hap, do të mësoni se si të menaxhoni vëllimet me Podman.

1. Krijoni të dhëna të reja të drejtorisë dhe skedarin e personalizuar index.html. Kjo do të zëvendësojë skedarin e paracaktuar Nginx index.html në kontejnerin Nginx.

mkdir -p ~/data/
nano ~/data/inde.html

Kopjoni dhe ngjisni skriptin e mëposhtëm HTML.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Welcome to Container Nginx</title>
</head>
<body>
  <h2>Hello from Nginx container - Managed with Podman</h2>
</body>
</html>

Ruani skriptin dhe dilni.

2. Më pas, ekzekutoni komandën e mëposhtme për të krijuar një enë të re me volum të personalizuar.

podman run -it --rm -d -p 8080:80 --name web -v ~/data:/usr/share/nginx/html nginx:alpine

Përdorni opsionin -v data:/usr/share/nginx/html për të konfiguruar volumin e personalizuar për kontejnerin tuaj të ri. Drejtoria data do të montohet në drejtorinë e kontejnerit /usr/share/nginx/html.

3. Kontrolloni kontejnerët që funksionojnë duke përdorur komandën Podman më poshtë.

podman ps

Emrat e rinj të kontejnerëve uebi është Lart me volumin e personalizuar.

4. Hapni shfletuesin tuaj të internetit dhe shkruani adresën IP të serverit me portën 8080.

http://192.168.1.10:8080/

Tani do të shihni faqen e personalizuar index.html si më poshtë.

SSH në Running Container

Në këtë hap, ju do të hyni në guaskën e kontejnerit të rrjedhshëm.

1. Për t'u identifikuar në kontejnerin që funksionon, përdorni Podman me opsionin exec si më poshtë.

podman exec -it web /bin/sh

2. Pasi të keni hyrë në kontejner, kontrolloni emrin e hostit të kontejnerit, adresën IP dhe tabelën e rrugëtimit.

hostname

ip a
route -n

Tani shkruani exit dhe shtypni Enter për të dalë nga kontejneri.

Pastroni ambientin

Në hapin e fundit, ju do të pastroni mjedisin tuaj.

1. Ndaloni web kontejnerin duke përdorur komandën e mëposhtme.

podman stop web

2. Më pas, hiqni të gjithë kontejnerët me status Dal duke përdorur komandën podman më poshtë.

podman rm $(podman ps --filter "status=exited" -q)

Tani ju keni përfunduar përdorimin bazë të Podman për menaxhimin e kontejnerëve dhe imazheve të kontejnerëve.

konkluzioni

urime! Ju keni instaluar me sukses Podman në sistemin Rocky Linux. Gjithashtu, keni mësuar përdorimin bazë të Podman për menaxhimin e kontejnerëve dhe imazheve të kontejnerëve.

Për hapin tjetër, mund të jeni të interesuar të krijoni imazhe të personalizuara të Kontejnerit bazuar në formatin e imazhit Docker ose specifikimin e imazhit të kontejnerit OCI.