RHEL 8-de Podman we Skopeo ulanyp konteýnerleri nädip dolandyrmaly
Geçmişde işläp düzüjileriň ýüzbe-ýüz bolýan kynçylyklarynyň biri, köp sanly hasaplaýyş gurşawynda ygtybarly işlemek üçin programmalary almakdyr. Köplenç programmalar garaşylşy ýaly işlemeýärdi ýa-da ýalňyşlyklar ýüze çykýardy we düýbünden şowsuzdy. Konteýnerler düşünjesi dörän ýeri.
Konteýner suratlary näme?
Konteýner şekilleri, izolirlenen gurşawda işleýän ýerine ýetirip bolýan kod bilen iberilýän statiki faýllardyr. Konteýner şekili, dürli gurşawda işlemek üçin programma zerur bolan ulgam kitaphanalaryny, garaşlylygy we beýleki platforma sazlamalaryny öz içine alýar.
Red Hat Linux, doker buýruklaryny talap edip, gönüden-göni Linux konteýnerleri bilen işlemek üçin ulanyp boljak peýdaly konteýner gurallarynyň toplumyny hödürleýär. Bular öz içine alýar:
- Podman - OCI konteýnerlerini kök ýa-da köksiz re inimde dolandyrmak we dolandyrmak üçin daemon az konteýner hereketlendirijisi. Podman Docker-e meňzeýär we Docker-iň daemon bolanyndan başga birmeňzeş buýruk opsiýalary bar. Konteýner şekillerini Docker-de bolşy ýaly podman ulanyp, çekip, dolandyryp we dolandyryp bilersiňiz. “Podman” köp sanly ösen aýratynlyklar bilen üpjün edilýär, ulgamlar bilen doly birleşýär we kök ulanyjy zerurlygy bolmazdan işleýän konteýnerleri öz içine alýan ulanyjy at giňişligini goldaýar.
- Skopeo: Konteýner şekillerini bir reýestrden beýlekisine göçürmek üçin ulanylýan buýruk setiri guraly. Skopeo-dan belli bir öý eýesine suratlary göçürmek, suratlary başga bir konteýner registrine ýa-da daşky gurşawa göçürip bilersiňiz. Suratlary göçürmekden başga-da, dürli registrlerden şekilleri barlamak we suratlary döretmek we barlamak üçin gollary ulanyp bilersiňiz.
- Buildah: Bu, Docker faýllaryny ulanyp, konteýner OCI şekillerini döretmek we dolandyrmak üçin ulanylýan buýruk setir gurallarynyň toplumy.
Bu makalada podman we Skopeo ulanyp konteýnerleri dolandyrmaga üns bereris.
Uzakdan registrden konteýner suratlaryny gözlemek
Podman gözleg buýrugy, konteýner şekilleri üçin saýlanan uzakdaky registrleri gözlemäge mümkinçilik berýär. Hasaba alyş sanawlarynyň deslapky sanawy/etc/konteýnerler/katalogda ýerleşýän registries.conf faýlynda kesgitlenendir.
Hasaba alyş ýazgylary 3 bölüm bilen kesgitlenýär.
- [registries.search] - Bu bölümde podmanyň konteýner şekillerini gözläp bilýän deslapky registrleri kesgitlenýär. Soralýan suraty registry.access.redhat.com, registry.redhat.io we docker.io registrlerinde gözleýär.
- Düzgüne görä, ýazgylar görkezilmeýär.
- [registries.block] - Bu, ýerli ulgamyňyzdan görkezilen registrlere girmegi bloklaýar ýa-da ret edýär. Düzgüne görä, ýazgylar görkezilmeýär.
“Podman” buýrugyny işleýän yzygiderli (kök däl) ulanyjy hökmünde, ulgam giňişligindäki sazlamalary ýok etmek üçin öz kataloglaryňyzdaky ($HOME/.config/konteýnerler/registries.conf) öz registries.conf faýlyňyzy kesgitläp bilersiňiz.
Hasaba alyş sanawlaryny kesgitläniňizde, aşakdakylary ýadyňyzdan çykarmaň:
- Her reýestr ýekeje sitata bilen gurşalan bolmaly.
- Hasaba alyş atlaryny ýa-da IP adresini ulanyp bellige alnyp bilner.
- Birnäçe registr görkezilen bolsa, olary dykgat bilen bölmeli.
- Hasaba alyş kitaby standart däl port ulanýan bolsa - ýa-da TCP porty 443, howpsyzlyk üçin 80 port bolsa - port belgisi bellige alyş ady bilen birlikde görkezilmelidir. registr.example.com:5566.
Sintaksis ulanyp konteýner şekili üçin registr gözlemek:
# podman search registry/container_image
Mysal üçin, registry.redhat.io registrinde Redis şekilini gözlemek üçin buýrugy çagyryň:
# podman search registry.redhat.io/redis
MariaDB konteýner şekilini gözlemek üçin.
# podman search registry.redhat.io/mariadb
Konteýner şekiliniň jikme-jik beýanyny almak üçin, netijeleriňizden konteýner şekiliniň adynyň öňünde --no-trunc
opsiýasyny ulanyň. Mysal üçin, MariaDB konteýner şekiliniň görkezilişi ýaly jikme-jik düşündiriş almaga synanyşarys:
# podman search --no-trunc registry.redhat.io/rhel8/mariadb-103
Konteýner suratlaryny çekmek
Konteýner şekillerini uzakdaky reýestrden çekmek ýa-da almak, ilki bilen başga bir zatdan öň tassyklamagy talap edýär. Mysal üçin, MariaDB konteýner şekilini almak üçin ilki Redhat registrine giriň:
# podman login
Ulanyjy adyňyzy we parolyňyzy beriň we klawiaturadaky ENTER düwmesine basyň. Allhli zat gowy bolsa, reýestre girmegiň üstünlikli bolandygyny tassyklaýan habar almaly.
Login Succeeded!
Indi görkezilen sintaksisiň kömegi bilen şekili çekip bilersiňiz:
# podman pull <registry>[:<port>]/[<namespace>/]<name>:<tag>
<registry>
TCP <port>
-da konteýner şekilleriniň ammaryny üpjün edýän uzakdaky hosta ýa-da registrlere degişlidir. <namespace>
we <name>
reýestrdäki <namespace>
esasly konteýner şekilini bilelikde görkezýärler. Netijede, <tag>
opsiýasy konteýner şekiliniň wersiýasyny kesgitleýär. Hiç biri görkezilmedik bolsa, deslapky bellik - iň soňky - ulanylýar.
Elmydama ynamdar registrleri goşmak maslahat berilýär, şifrlemäni üpjün edýän we näbelli ulanyjylara tötänleýin atlar bilen hasap açmagyna rugsat bermeýänler.
MariaDB şekilini çekmek üçin buýrugy işlediň:
# podman pull registry.redhat.io/rhel8/mariadb-103
-
<registry>
- registry.redhat.io -
<namespace>
- rhel8 -
<name>
- MariaDB -
<tag>
- 103
Ondan soňky konteýner şekilleri çekmek üçin, eýýäm tassyklananyňyzdan soň girmek hökman däl. Redis konteýner şekilini çekmek üçin işlediň:
# podman pull registry.redhat.io/rhscl/redis-5-rhel7
Konteýner suratlarynyň sanawy
Suratlary çekip bolanyňyzdan soň, podman şekilleri buýrugyny işledip, öý eýesiňizde bar bolan suratlary görüp bilersiňiz.
# podman images
Konteýner suratlaryny barlamak
Konteýner işlemezden ozal şekili barlamak we näme edýändigine düşünmek gowy zat. Podman barlag buýrugy, OS we Arhitektura ýaly konteýner hakda metadata deňzini çap edýär.
Suraty barlamak üçin podman barlag buýrugyny işlediň, soňra bolsa surat belgisi ýa-da ammar bar.
# podman inspect IMAGE ID OR # podman inspect REPOSITORY
Aşakdaky mysalda, MariaDB konteýnerini barlaýarys.
# podman inspect registry.redhat.io/rhel8/mariadb-103
Konteýner üçin belli bir meta-maglumaty çekmek üçin --format
opsiýasyndan soň metadata we konteýner şahsyýeti (Surat ID ýa-da ady) geçiň.
Aşakdaky mysalda, Bellikler bölümine girýän RHEL 8 esasy konteýneriň arhitekturasy we beýany barada maglumat alýarys.
# podman inspect --format=’{{.Labels.architecture}}’ image ID # podman inspect --format=’{{.Labels.description}}’ image ID
Başga bir reýestrden uzakdaky suraty barlamak üçin skopeo inspekt buýrugyny ulanyň. Aşakdaky mysalda, Docker-de ýerleşdirilen RHEL 8 init şekilini barlaýarys.
# skopeo inspect docker://registry.redhat.io/rhel8-beta/rhel-init
Konteýner suratlaryny bellemek
Belläp geçişiňiz ýaly, şekil atlary adatça umumydyr. Mysal üçin, redis şekili bellik edilýär:
registry.redhat.io/rhscl/redis-5-rhel7
Suratlary bellik etmek, içindäki zatlara has gowy düşünmek üçin has içgin at berýär. “Podman” belligi buýrugyny ulanyp, dürli bölekleri öz içine alýan şekil adyna lakamly şekil belligini döredip bilersiňiz.
Bular:
registry/username/NAME:tag
Mysal üçin, 646f2730318c belgisi bolan Redis şekiliniň umumy adyny üýtgetmek üçin buýrugy ýerine ýetireris:
# podman tag 646f2730318c myredis
Ahyrynda bellik goşmak üçin bellik belgisiniň yzyndan doly sütün goşuň:
# podman tag 646f2730318c myredis:5.0
Bellik belgisini goşmazdan, diňe atribut iň soňky bellener.
Konteýner suratlaryny işletmek
Konteýner işletmek üçin podman run buýrugyny ulanyň. Mysal üçin:
# podman run image_id
Konteýni fonda arkaýyn işletmek üçin, daemon hyzmaty hökmünde görkezilişi ýaly -d
opsiýasyny ulanyň.
# podman run -d image_id
Mysal üçin, redis şekilini ID 646f2730318c bilen işletmek üçin buýrugy ulanarys:
# podman run -d 646f2730318c
RHEL 8 esasy surat ýaly operasiýa ulgamyna esaslanýan konteýner işleýän bolsaňyz, -it
direktiwasyny ulanyp, gabyga girip bilersiňiz. -i
opsiýasy interaktiw sessiýa döredýär, -t
terminal sessiýasyny döredýär. --name
opsiýasy konteýneriň adyny mybash-a düzýär, esasy şekiliň ecbc6f53bba0 şekil ID-si.
# podman run -it --name=mybash ecbc6f53bba0
Ondan soň islendik gabyk buýruklaryny işledip bilersiňiz. Aşakdaky mysalda, konteýner şekiliniň OS wersiýasyny barlaýarys.
# cat /etc/os-release
Konteýnerden çykmak üçin diňe çykyş buýrugyny çagyryň.
# exit
Konteýner çykandan soň awtomatiki usulda saklanýar. Konteýni täzeden başlamak üçin podman başlangyç buýrugyny görkezilişi ýaly -ai
baýdagy bilen ulanyň.
# podman start -ai mybash
Againene bir gezek bu gabyga girmäge mümkinçilik berýär.
Işleýän konteýner suratlarynyň sanawy
Häzirki wagtda işleýän konteýnerleri sanamak üçin podman ps buýrugyny görkezilişi ýaly ulanyň.
# podman ps
Containhli gap-gaçlary, şol sanda işledilenden soň çykanlary görmek üçin buýrugy ulanyň:
# podman ps -a
Konteýner suratlaryny “Systemd Service” -iň awto başlangyjy üçin sazlaň
Bu bölümde, RHEL ulgamynda systemd hyzmaty hökmünde gönüden-göni işlemek üçin konteýneriň nädip düzülip biljekdigine ünsi jemleýäris.
Ilki bilen, halaýan suratyňyzy alyň. Bu ýagdaýda Redis şekilini doker merkezinden çykardyk:
# podman pull docker.io/redis
Ulgamyňyzda SELinux işleýän bolsa, systemd bilen konteýnerleri işletmek üçin konteýner_manage_cgroup booleany işjeňleşdirmeli.
# setsebool -p container_manage_cgroup on
Ondan soň konteýner şekilini fonda işlediň we islän suratyňyzyň adyna belläň. Bu mysalda, redis_server suratymyza at dakdyk we konteýnerden RHEL 8 öý eýesine 6379 portuny kartalaşdyrdyk.
# podman run -d --name redis_server -p 6379:6379 redis
Indiki,/etc/systemd/system/katalogda redis üçin systemd birlik konfigurasiýa faýly dörederis.
# vim /etc/systemd/system/redis-container.service
Aşakdaky mazmuny faýla goýuň.
[Unit] Description=Redis container [Service] Restart=always ExecStart=/usr/bin/podman start -a redis_server ExecStop=/usr/bin/podman stop -t 2 redis_server [Install] WantedBy=local.target
Faýly ýazdyryň we çykyň.
Ondan soň, ýüklemäni awtomatiki başlamak üçin konteýner düzüň.
# systemctl enable redis-container.service
Ondan soň, konteýner işe başlaň we işleýiş ýagdaýyny barlaň.
# systemctl start redis-container.service # systemctl status redis-container.service
Konteýner suratlary üçin dowamly ammary sazlaň
Konteýnerler işledilende, öý eýesinde dowamly daşarky ammar düzmek akyllydyr. Konteýner ýykylsa ýa-da tötänleýin aýrylsa, ätiýaçlyk nusgasyny üpjün edýär.
Maglumatlary dowam etdirmek üçin, hostda ýerleşýän bir bukjany konteýneriň içindäki kataloga karta etmekçi.
$ podman run --privileged -it -v /var/lib/containers/backup_storage:/mnt registry.redhat.io/ubi8/ubi /bin/bash
SELinux ýerine ýetirilende --privileged
opsiýasy geçýär. -v
opsiýasy öý eýesinde ýerleşýän daşarky göwrümi kesgitleýär. Bu ýerdäki konteýneriň göwrümi/mnt bukjasydyr.
Gabykdan girenimizden soň, görkezilişi ýaly/mnt katalogynda test.txt faýl dörederis.
$ echo "This tests persistent external storage" > /mnt/testing.txt
Soňra konteýnerden çykarys we faýlyň öý eýesinde ýaşaýan daşarky ammarda bardygyny ýa-da ýokdugyny barlarys
# exit # cat /var/lib/containers/backup_storage/testing.txt
Çykyş ⇒ Bu dowamly daşarky ammary synap görýär.
Konteýnerleri duruzmak we aýyrmak
Konteýneriňizi işledeniňizden soň, podman ps buýrugyndan alyp boljak konteýner-id bilen podman stop buýrugyny ulanyp, ony saklap bilersiňiz.
# podman stop container-id
Indi zerur däl konteýnerleri aýyrmak üçin ilki bilen ony saklaň we podman rm buýrugyny, soň bolsa konteýner idini ýa-da adyny saýlaň.
# podman rm container-id
Bir buýrukda birnäçe konteýner aýyrmak üçin boşluk bilen bölünen konteýner ID-lerini görkeziň.
# podman rm container-id-1 container-id-2 container-id-3
Konteýnerleriňizi arassalamak üçin buýrugy işlediň:
# podman rm -a
Suraty aýyrmak
Bir suraty aýyrmak üçin, ilki bilen, öňki mowzukda aýdylyşy ýaly, suratlardan dörän gaplaryň hemmesiniň saklanmagyna we aýrylmagyna göz ýetiriň.
Ondan soň, görkezilişi ýaly şekiliň şahsyýetnamasy bilen podman -rmi
buýrugyny dowam etdiriň we işlediň:
# podman -rmi image-id
Netije
Bu, RHEL 8-de konteýnerleri dolandyrmak we işlemek baradaky bu bölümi öz içine alýar. Bu gollanma konteýnerlere we podman we Skopeo ulanyp, RHEL ulgamyňyzda nädip täsirleşip we dolandyryp boljakdygyna gowy düşüner diýip umyt edýäris.