Otu esi ejikwa Podman na Skopeo na RHEL 8
Otu n'ime ihe ịma aka ndị mmepe chere ihu n'oge gara aga bụ ịnweta ngwa ka ọ na-arụ ọrụ nke ọma n'ofe gburugburu kọmputa. Ọtụtụ mgbe, ngwa anaghị arụ ọrụ dịka a tụrụ anya ma ọ bụ zute mperi wee daa kpamkpam. Na nke ahụ bụ ebe a mụrụ echiche nke arịa.
Kedu ihe bụ onyonye akpa?
Onyonyo akpa bụ faịlụ kwụ ọtọ na-ebuga nwere koodu arụrụ arụ nke na-aga n'ebe dịpụrụ adịpụ. Onyonyo akpa nwere ọba akwụkwọ sistemu, ndabere na ntọala ikpo okwu ndị ọzọ nke ngwa chọrọ iji na-agba ọsọ na gburugburu dị iche iche.
Red Hat Linux na-enye otu ngwa akpa bara uru nke ị nwere ike leverage iji rụọ ọrụ ozugbo na arịa Linux site na iji iwu docker chọrọ. Ndị a gụnyere:
- Podman - Nke a bụ injin na-enweghị obere akpa maka ịgba ọsọ na ijikwa arịa OCI na mgbọrọgwụ ma ọ bụ enweghị mgbọrọgwụ. Podman yiri Docker ma nwee otu nhọrọ iwu ewezuga na Docker bụ daemon. Ị nwere ike ịdọrọ, gbaa ma jikwaa onyonyo akpa site na iji podman n'otu ụzọ ahụ ị ga-eji Docker. Podman na-abịa n'ọtụtụ atụmatụ dị elu, jikọtara ya na sistemu zuru oke, ma na-enye nkwado aha njirimara nke gụnyere arịa na-agba ọsọ na-enweghị mkpa onye ọrụ mgbọrọgwụ.
- Skopeo: Nke a bụ ngwa ahịrị iwu ejiri maka idegharị onyonyo akpa site n'otu ndekọ gaa na nke ọzọ. Ị nwere ike iji Skopeo detuo ihe onyonyo gaa na site na otu onye ọbịa yana detuo onyonyo gaa na ndekọ akpa ọzọ ma ọ bụ gburugburu. Ewezuga iṅomi onyonyo, ị nwere ike iji ya nyochaa onyonyo sitere na ndekọ dị iche iche wee jiri akara mbinye aka mepụta na nyochaa onyonyo.
- Buildah: Nke a bụ ngwa ọrụ ahịrị iwu ejiri maka imepụta na ijikwa ihe onyonyo OCI akpa site na iji faịlụ Docker.
N'isiokwu a, anyị ga-elekwasị anya na ijikwa arịa site na iji podman na Skopeo.
Ịchọ ihe onyonyo akpa site na ndekọ dịpụrụ adịpụ
Iwu ọchụchọ podman na-enye gị ohere ịchọ ndekọ ndekọ dịpụrụ adịpụ ahọpụtara maka onyonyo akpa. A kọwapụtara ndepụta ndekọ aha ndabara na faịlụ registries.conf dị na /etc/containers/ directory.
A na-akọwapụta ndekọ ndị ahụ site na ngalaba 3.
- [registries.search] – Nkebi a na-akọwapụta ndabara registries na podman nwere ike ịchọ akpa oyiyi. Ọ na-achọ onyonyo a rịọrọ na registry.access.redhat.com, registry.redhat.io na docker.io registries.
- [registries.insecure]- Nkebi a na-akọwapụta ndekọ aha na-adịghị emejuputa TLS izo ya ezo ya bụ ndekọ na-enweghị nchebe. Site na ndabara, ọ nweghị ndenye akọwapụtara.
- [registries.block] - Nke a gbochiri ma ọ bụ gọnarị ịnweta ndebanye aha akọwapụtara na sistemụ mpaghara gị. Site na ndabara, ọ nweghị ndenye akọwapụtara.
Dị ka onye ọrụ mgbe niile (na-abụghị mgbọrọgwụ) na-agba ọsọ iwu podman, ị nwere ike kọwaa faịlụ registries.conf nke gị na ndekọ ụlọ gị ($HOME/.config/containers/registries.conf) iji kpochapụ ntọala usoro.
Ka ị na-akọwapụta ndekọ aha, buru n'uche ihe ndị a:
- Ekwesịrị iji otu nkwute were mechie ndekọ ọ bụla.
- Enwere ike ịkọwapụta ndekọ aha site na iji aha nnabata ma ọ bụ adreesị IP.
- Ọ bụrụ na akọwapụtara ọtụtụ ndebanye aha, mgbe ahụ a ga-ekewa ha site na rikoma. Ọ bụrụ na ndekọ na-eji ọdụ ụgbọ mmiri na-abụghị ọkọlọtọ - ma ọdụ ụgbọ mmiri TCP 443 maka nchekwa yana 80 maka enweghị nchebe, - ekwesịrị ịkọwa nọmba ọdụ ụgbọ mmiri n'akụkụ aha ndekọ dịka ọmụmaatụ. registry.example.com:5566.
Iji syntax ka ịchọọ ndekọ maka foto akpa:
# podman search registry/container_image
Dịka ọmụmaatụ, ka ịchọọ onyonyo Redis na registry.redhat.io registry, kpọọ iwu a:
# podman search registry.redhat.io/redis
Ka ịchọọ ọsọ onyonyo akpa akpa MariaDB.
# podman search registry.redhat.io/mariadb
Iji nweta nkọwapụta nkọwa nke onyonyo akpa, jiri nhọrọ --no-trunc
tupu aha onyonyo akpa ahụ site na nsonaazụ ị nwetara. Dịka ọmụmaatụ, anyị ga-agbalị ịnweta nkọwa zuru ezu nke foto akpa MariaDB dị ka egosiri:
# podman search --no-trunc registry.redhat.io/rhel8/mariadb-103
Eserese igbe na-adọkpụ
Ịdọrọ ma ọ bụ weghachite onyonyo akpa site na ndekọ dịpụrụ adịpụ chọrọ ka ị buru ụzọ chọpụta tupu ihe ọ bụla ọzọ. Dịka ọmụmaatụ, iji weghachite foto akpa MariaDB, buru ụzọ banye na ndekọ Redhat:
# podman login
Nye aha njirimara na paswọọdụ gị wee pịa 'ENTER' na keyboard gị. Ọ bụrụ na ihe niile na-aga nke ọma, ị ga-enweta ozi nkwenye na nbanye na ndekọ ahụ gara nke ọma.
Login Succeeded!
Ugbu a, ị nwere ike ịdọrọ onyonyo a site na iji syntax egosiri:
# podman pull <registry>[:<port>]/[<namespace>/]<name>:<tag>
<namespace>
na <name>
na-ejikọta ọnụ na-akọwapụta onyonyo akpa dabere na <namespace>
na ndekọ. N'ikpeazụ, nhọrọ <tag>
na-akọwapụta ụdị onyonyo akpa ahụ. Ọ bụrụ na akọwapụtaghị nke ọ bụla, a na-eji mkpado ndabara - nke kachasị ọhụrụ -.
A na-atụ aro ka ịgbakwunye ndekọ ndị tụkwasịrị obi, ya bụ ndị na-enye ezoro ezo ma ghara ikwe ka ndị ọrụ na-amaghị aha nweta akaụntụ na aha enweghị aha.
Iji dọta foto MariaDB, mee iwu:
# podman pull registry.redhat.io/rhel8/mariadb-103
-
- registry.redhat.io -
> rhel8 -
aha > – MariaDB -
<tag>
- 103
Maka eserese akpa na-esote ịdọrọ, ọnweghị ịbanye ọzọ achọrọ ebe ọ bụ na ị kwadorolarị gị. Iji dọpụta ihe onyonyo akpa Redis, gbaa ọsọ:
# podman pull registry.redhat.io/rhscl/redis-5-rhel7
Ndepụta ihe onyonyo
Ozugbo ịmechara ịdọrọ onyonyo a, ị nwere ike ịlele onyonyo dị ugbu a na onye ọbịa gị site na iji iwu onyonyo podman.
# podman images
Na-enyocha onyogho akpa
Tupu ịgbasa akpa, ọ na-adị mma mgbe niile inyocha onyonyo wee ghọta ihe ọ na-eme. Iwu nyocha nke podman na-ebipụta oke osimiri metadata gbasara akpa dị ka OS na Architecture.
Iji nyochaa onyonyo, mee iwu nyocha podman na-esochi ID onyonyo ma ọ bụ ebe nchekwa.
# podman inspect IMAGE ID OR # podman inspect REPOSITORY
N'ihe atụ dị n'okpuru, anyị na-enyocha akpa MariaDB.
# podman inspect registry.redhat.io/rhel8/mariadb-103
Iji dọkpụrụ metadata kpọmkwem maka akpa gafere nhọrọ --ụdị
nke metadata na njirimara akpa ( ID ma ọ bụ aha ) na-esote.
N'ihe atụ dị n'okpuru, anyị na-eweghachite ozi gbasara ihe owuwu na nkọwa nke akpa RHEL 8 nke dabara n'okpuru ngalaba 'Labels'.
# podman inspect --format=’{{.Labels.architecture}}’ image ID # podman inspect --format=’{{.Labels.description}}’ image ID
Iji nyochaa onyonyo dịpụrụ adịpụ site na ndekọ ọzọ, jiri iwu nyocha skopeo. N'ihe atụ dị n'okpuru, anyị na-enyocha onyonyo init RHEL 8 na Docker.
# skopeo inspect docker://registry.redhat.io/rhel8-beta/rhel-init
Nkpado onyonyo akpa
Dịka ị sirila kwupụtagoro, aha onyonyo na-abụkarị ọnụọgụ n'ụdị. Dịka ọmụmaatụ, a na-akpọ foto redis:
registry.redhat.io/rhscl/redis-5-rhel7
Ịkpado onyonyo na-enye ha aha nwere nghọta karịa ka ha ghọta nke ọma ihe ha nwere. Iji iwu mkpado podman, ị nwere ike ịmepụta mkpado onyonyo nke bụ n'ezie utu aha aha onyonyo nke nwere akụkụ dị iche iche.
Ndị a bụ:
registry/username/NAME:tag
Dịka ọmụmaatụ, iji gbanwee aha njirimara nke Redis nke nwere ID nke 646f2730318c, anyị ga-eme iwu:
# podman tag 646f2730318c myredis
Ka ịgbakwunye mkpado na njedebe tinye oghere zuru ezu na nọmba mkpado na-esote:
# podman tag 646f2730318c myredis:5.0
Na-agbakwunyeghị nọmba mkpado ahụ, a ga-ekenye ya nke kacha ọhụrụ.
Foto akpa na-agba ọsọ
Iji mee akpa, jiri iwu ịgba ọsọ podman. Ọmụmaatụ:
# podman run image_id
Iji na-agba akpa na nzuzo n'azụ dị ka ọrụ daemon jiri nhọrọ -d
dị ka egosiri.
# podman run -d image_id
Dịka ọmụmaatụ, iji jiri ID 646f2730318c mee ihe onyonyo redis, anyị ga-akpọku iwu:
# podman run -d 646f2730318c
Ọ bụrụ na ị na-agba akpa dabere na sistemu arụ ọrụ dịka onyonyo isi RHEL 8, ị nwere ike nweta ntụzịaka -it
. Nhọrọ -i
na-emepụta nnọkọ mmekọrịta ebe -t
na-ewepụta nnọkọ ọnụ. Nhọrọ - aha
na-edobe aha akpa ahụ ka ọ bụrụ mybash ebe ọ bụ ihe onyonyo ecbc6f53bba0 nke onyonyo ntọala.
# podman run -it --name=mybash ecbc6f53bba0
Mgbe nke ahụ gasịrị, ị nwere ike ịme iwu shei ọ bụla. N'ihe atụ dị n'okpuru, anyị na-enyocha ụdị os nke foto akpa ahụ.
# cat /etc/os-release
Iji pụọ na akpa ahụ, kpọkuo naanị iwu ọpụpụ.
# exit
Ozugbo akpa ahụ pụtara, ọ na-akwụsị ozugbo. Iji malite akpa ahụ ọzọ, jiri akara mmalite podman jiri ọkọlọtọ -ai
dị ka egosiri.
# podman start -ai mybash
Ọzọkwa, nke a na-enye gị ohere ịnweta shei.
Ndepụta ihe onyonyo igbe na-agba ọsọ
Iji depụta arịa na-agba ọsọ ugbu a, jiri iwu podman ps dị ka egosiri.
# podman ps
Ka ilele akpa niile gụnyere ndị pụọla ka ha gbachara, jiri iwu a:
# podman ps -a
Hazie onyonyo akpa ka ọ bụrụ mmalite akpaaka n'okpuru ọrụ sistemụ
N'akụkụ a, anyị na-elekwasị anya ka esi hazie akpa ka ọ na-agba ọsọ ozugbo na sistemụ RHEL dị ka ọrụ sistemụ.
Nke mbụ, nweta onyonyo masịrị gị. N'okwu a, anyị ewepụla onyonyo Redis na docker hub:
# podman pull docker.io/redis
Ọ bụrụ na ị nwere SELinux na-agba ọsọ na sistemụ gị, ịkwesịrị ịgbalite container_manage_cgroup boolean ka ị na-eji sistemu arịa rụọ.
# setsebool -p container_manage_cgroup on
Mgbe nke ahụ gasịrị, mee ihe onyonyo akpa ahụ n'azụ wee kenye ya n'aha onyonyo masịrị gị. N'ihe atụ a, anyị akpọpụtala aha ihe onyonyo anyị redis_server wee depụta ọdụ ụgbọ mmiri 6379 site na akpa gaa na onye ọbịa RHEL 8 anyị.
# podman run -d --name redis_server -p 6379:6379 redis
Na-esote, anyị ga-emepụta faịlụ nhazi nhazi usoro maka redis na /etc/systemd/system/ directory.
# vim /etc/systemd/system/redis-container.service
Tapawa ọdịnaya dị n'okpuru na faịlụ ahụ.
[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
Chekwaa wee pụọ na faịlụ ahụ.
Na-esote, hazie akpa ahụ ka ọ malite na-akpaghị aka na bootup.
# systemctl enable redis-container.service
Na-esote, malite akpa ahụ ma chọpụta ọkwa ọ na-agba ọsọ.
# systemctl start redis-container.service # systemctl status redis-container.service
Hazie Nchekwa na-adịgide adịgide maka onyonyo akpa
Mgbe ị na-agba arịa, ọ bụ ihe amamihe dị na ya ịhazi nchekwa mpụga na-adịgide adịgide na onye ọbịa. Nke a na-enye ndabere ma ọ bụrụ na akpa ahụ daa ma ọ bụ wepụ ya na mberede.
Iji nọgide na data ahụ, anyị ga-esetịpụ akwụkwọ ndekọ aha dị n'ime onye ọbịa gaa na ndekọ n'ime akpa ahụ.
$ podman run --privileged -it -v /var/lib/containers/backup_storage:/mnt registry.redhat.io/ubi8/ubi /bin/bash
Nhọrọ --nwere privileed
ga-agafe mgbe edobere SELinux ka ọ manye. Nhọrọ -v
na-akọwapụta olu mpụga nke dị na onye ọbịa. Olu akpa ebe a bụ /mnt ndekọ.
Ozugbo anyị nwetara shei ahụ, anyị ga-emepụta ihe nlele faịlụ test.txt na /mnt ndekọ dị ka egosiri.
$ echo "This tests persistent external storage" > /mnt/testing.txt
Anyị ga-apụ na akpa wee lelee ma faịlụ ahụ ọ dị na nchekwa mpụga nke bi na onye ọbịa ahụ
# exit # cat /var/lib/containers/backup_storage/testing.txt
Mpụta ⇒ Nke a na-anwale nchekwa mpụga na-adịgide adịgide.
Nkwụsị na iwepụ arịa
Ozugbo ịmechara ijikwa akpa gị, ị nwere ike ịkwụsị ya site na iji iwu nkwụsị podman na-esote container-id nke ị nwere ike nweta site na iwu podman ps.
# podman stop container-id
Iji wepụ arịa ndị ị na-achọghịzi, nke mbụ, hụ na ị kwụsịrị ya wee kpọkuo iwu podman rm nke ID ma ọ bụ aha na-esote ya dị ka nhọrọ.
# podman rm container-id
Iji wepu ọtụtụ arịa mgbe ị na-aga n'otu iwu, kọwapụta ids akpa nke oghere kewapụrụ.
# podman rm container-id-1 container-id-2 container-id-3
Ka ikpochapụ akpa gị niile, mee iwu:
# podman rm -a
Iwepu onyonyo
Iji wepụ ihe onyonyo, buru ụzọ hụ na ewepụsịrị akpa niile ewepụtara na onyonyo a dị ka a tụlere n'isi isiokwu gara aga.
Na-esote, gaa n'ihu ma mee iwu podman -rmi
wee soro ID nke onyonyo a ka egosiri:
# podman -rmi image-id
Mmechi
Nke a na-ekpuchi isiakwụkwọ a maka ijikwa na ịrụ ọrụ na arịa dị na RHEL 8. Anyị na-atụ anya na ntuziaka a nyere ezigbo nghọta nke akpa na otu ị ga-esi mekọrịta ma jikwaa ha na usoro RHEL gị site na iji podman na Skopeo.