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>

na-ezo aka na onye nnabata ma ọ bụ ndekọ dịpụrụ adịpụ nke na-enye ebe nchekwa ihe onyonyo akpa na TCP / koodu>. The <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.


Ikike niile echekwabara. © Linux-Console.net • 2019-2024