![2019 ima lahko škodljivo programsko opremo v vsaki napravi pravi McAfee](/f/280e547b57d70374198fa4527de59de3.jpg?width=100&height=100)
Eden od izzivov, s katerimi so se v preteklosti soočali razvijalci, je zanesljivo delovanje aplikacij v več računalniških okoljih. Pogosto se aplikacije niso izvajale po pričakovanjih ali so se pojavljale napake in so popolnoma propadle. In tu je koncept posode se je rodil.
Zabojnik slike so statične datoteke, ki so priložene izvršljivi kodi, ki se izvaja v izoliranem okolju. Slika vsebnika vsebuje sistemske knjižnice, odvisnosti in druge nastavitve platforme, ki jih aplikacija potrebuje za izvajanje v različnih okoljih.
Red Hat Linux ponuja nabor uporabnih orodij za vsebnike, ki jih lahko uporabite za neposredno delo z vsebniki Linuxa z uporabo zahtev docker ukazi. Tej vključujejo:
V tem članku se bomo osredotočili na upravljanje vsebnikov z uporabo podman in Skopeo.
The podman iskanje ukaz vam omogoča iskanje slik vsebnikov v izbranih oddaljenih registrih. Privzeti seznam registrov je opredeljen v registries.conf datoteko, ki se nahaja v /etc/containers/ imenik.
Registre opredeljujejo 3 razdelki.
Kot redni (nekoreninski) uporabnik, ki izvaja ukaz podman, lahko določite svojega registries.conf datoteko v domačem imeniku ($ HOME/.config/vsebniki/registri.conf) za preglasitev sistemskih nastavitev.
Ko določite registre, ne pozabite na naslednje:
Če želite poiskati sliko vsebnika v registru s skladnjo:
# podman search register/container_image.
Na primer, za iskanje datoteke Redis sliko v register.redhat.io register, pokličite ukaz:
# podman iskanje register.redhat.io/redis.
Za iskanje a MariaDB zagon slike posode.
# podman iskanje register.redhat.io/mariadb.
Če želite podroben opis slike vsebnika, uporabite datoteko -brez trunk
možnost pred imenom slike vsebnika iz rezultatov, ki jih dobite. Na primer, poskušali bomo pridobiti podroben opis slike vsebnika MariaDB, kot je prikazano:
# iskanje podmana --no-trunc register.redhat.io/rhel8/mariadb-103.
Če želite izvleči ali pridobiti slike vsebnikov iz oddaljenega registra, morate najprej preveriti pristnost. Če želite na primer pridobiti sliko vsebnika MariaDB, se najprej prijavite v register Redhat:
# prijava podman.
Vnesite svoje uporabniško ime in geslo ter pritisnite 'ENTER‘Na tipkovnici. Če je vse v redu, bi morali dobiti potrditveno sporočilo, da je bila prijava v register uspešna.
Prijava uspela!
Zdaj lahko sliko potegnete s prikazano skladnjo:
# podman pull[: ]/[ /] :
The se nanaša na oddaljenega gostitelja ali register, ki ponuja skladišče slik vsebnikov na TCP. The in skupaj določite sliko vsebnika na podlagi v registru. Končno, možnost podaja različico slike vsebnika. Če nobena ni določena, se uporabi privzeta oznaka - najnovejša.
Vedno je priporočljivo dodati zaupanja vredne registre, to je tiste, ki zagotavljajo šifriranje in anonimnim uporabnikom ne dovoljujejo ustvarjanja računov z naključnimi imeni.
Če želite potegniti podobo MariaDB, zaženite ukaz:
# podman pull register.redhat.io/rhel8/mariadb-103.
Za nadaljnje vlečenje slik vsebnika ni potrebna dodatna prijava, saj ste že overjeni. Če želite potegniti a Redis slika vsebnika, preprosto zaženite:
# podman pull register.redhat.io/rhscl/redis-5-rhel7.
Ko izvlečete slike, si lahko ogledate slike, ki trenutno obstajajo na vašem gostitelju, tako da zaženete ukaz podman images.
# podmanove slike.
Preden zaženete posodo, je vedno dobro preučiti sliko in razumeti, kaj počne. The podman pregledati ukaz natisne morje metapodatkov o vsebniku, kot sta OS in arhitektura.
Če želite pregledati sliko, zaženite datoteko podman pregledati ukaz, ki mu sledi ID slike ali repozitorij.
# podman pregleda IMAGE ID. ALI. # podman pregledati REPOZITORIJO.
V spodnjem primeru pregledujemo MariaDB posodo.
# podman preglejte register.redhat.io/rhel8/mariadb-103.
Če želite potegniti določene metapodatke za vsebnik, podajte datoteko --format
možnost, ki ji sledijo metapodatki in identiteta vsebnika (ID slike ali ime).
V spodnjem primeru pridobivamo informacije o arhitekturi in opisu osnovnega vsebnika RHEL 8, ki spada pod „Nalepke’Razdelek.
# podman inspect --format = ’{{. Labels.architecture}}’ ID slike. # podman inspect --format = ’{{. Labels.description}}’ ID slike.
Če želite pregledati oddaljeno sliko iz drugega registra, uporabite datoteko skopeo pregledati ukaz. V spodnjem primeru pregledujemo začetno sliko RHEL 8, ki gostuje na Docker.
# skopeo pregledati docker: //registry.redhat.io/rhel8-beta/rhel-init.
Kot ste morda opazili, so imena slik običajno generične narave. Redisova slika je na primer označena:
register.redhat.io/rhscl/redis-5-rhel7.
Označevanje slik jim daje bolj intuitivno ime, da bolje razumejo, kaj vsebujejo. Uporabljati podman tag Ukaz lahko ustvarite slikovno oznako, ki je v bistvu vzdevek imena slike, ki vsebuje različne dele.
To so:
register/uporabniško ime/NAME: oznaka.
Na primer, če želite spremeniti generično ime slike Redis, ki ima ID 646f2730318c, izvedli bomo ukaz:
# podman tag 646f2730318c myredis.
Če želite dodati oznako na koncu, dodajte polno dvopičje, ki mu sledi številka oznake:
# podman tag 646f2730318c myredis: 5.0.
Brez dodajanja številke oznake mu bo atribut dodeljen najnovejši.
Če želite zagnati vsebnik, uporabite podman tek ukaz. Na primer:
# podman zaženi image_id.
Če želite tiho zagnati vsebnik v ozadju kot storitev demona, uporabite datoteko -d
možnost, kot je prikazano.
# podman run -d image_id.
Na primer, za zagon redis slika z ID -jem 646f2730318c, prikličemo ukaz:
# podman run -d 646f2730318c.
Če uporabljate vsebnik, ki temelji na operacijskem sistemu, kot je npr RHEL 8 osnovne slike, lahko dostopate do lupine s pomočjo -to
direktivo. The -jaz
možnost ustvari interaktivno sejo, medtem ko -t
sproži terminalsko sejo. The --ime
možnost nastavi ime vsebnika na mybash medtem ko je ecbc6f53bba0 ID slike osnovne slike.
# podman run -it --name = mybash ecbc6f53bba0.
Nato lahko zaženete vse ukaze lupine. V spodnjem primeru preverjamo različico OS slike posode.
# cat /etc /os-release.
Če želite zapreti vsebnik, preprosto prikličite ukaz exit.
# izhod.
Ko je vsebnik zaprt, se samodejno ustavi. Če želite znova zagnati vsebnik, uporabite podman start ukaz z -ai
zastavo, kot je prikazano.
# podman start -ai mybash.
Še enkrat vam to omogoča dostop do lupine.
Za seznam trenutno delujočih vsebnikov uporabite datoteko podman ps ukaz, kot je prikazano.
# podman ps.
Če si želite ogledati vse vsebnike, vključno s tistimi, ki so zapustili po zagonu, uporabite ukaz:
# podman ps -a.
V tem razdelku se osredotočamo na to, kako je mogoče vsebnik konfigurirati tako, da deluje neposredno v sistemu RHEL kot storitev systemd.
Najprej si priskrbite želeno sliko. V tem primeru smo potegnili Redis slika iz docker vozlišča:
# podman potegni docker.io/redis.
Če imate v sistemu nameščen SELinux, morate aktivirati container_manage_cgroup boolean za zagon zabojnikov systemd.
# setsebool -p container_manage_cgroup je vklopljen.
Nato zaženite sliko vsebnika v ozadju in jo dodelite želenemu imenu slike. V tem primeru smo poimenovali svojo podobo redis_server in kartiral vrata 6379 od zabojnika do našega RHEL 8 gostitelja
# podman run -d --name redis_server -p 6379: 6379 redis.
Nato bomo ustvarili systemd konfiguracijsko datoteko enote za redis v /etc/systemd/system/ imenik.
# vim /etc/systemd/system/redis-container.service.
Spodnjo vsebino prilepite v datoteko.
[Enota] Opis = vsebnik Redis [storitev] Ponovni zagon = vedno. ExecStart =/usr/bin/podman start -a redis_server. ExecStop =/usr/bin/podman stop -t 2 redis_server [Namesti] WantedBy = local.target.
Shranite in zapustite datoteko.
Nato nastavite vsebnik, da se samodejno zažene ob zagonu.
# systemctl omogoči redis-container.service.
Nato zaženite vsebnik in preverite njegovo stanje delovanja.
# systemctl začni redis-container.service. # systemctl status redis-container.service.
Pri izvajanju vsebnikov je pametno konfigurirati trajno zunanjo shrambo na gostitelju. To zagotavlja varnostno kopijo v primeru, da se vsebnik zruši ali po nesreči odstrani.
Za ohranitev podatkov bomo preslikali imenik v gostitelju v imenik v vsebniku.
$ podman run --privileged -it -v/var/lib/container/backup_storage:/mnt register.redhat.io/ubi8/ubi/bin/bash.
The -privilegiran
možnost je podana, ko SELinux je nastavljeno na uveljavljanje. The -v
možnost določa zunanji nosilec, ki se nahaja na gostitelju. Volumen posode je tukaj /mnt imenik.
Ko dostopamo do lupine, bomo ustvarili vzorčno datoteko testing.txt v /mnt imenik, kot je prikazano.
$ echo "Ta preizkuša trajno zunanjo shrambo"> /mnt/testing.txt.
Takrat bomo izhod vsebnik in preverite, ali datoteka obstaja v zunanjem pomnilniku, ki je v gostitelju
# izhod. # cat /var/lib/containers/backup_storage/testing.txt.
Izhod ⇒ S tem se preveri trajni zunanji pomnilnik.
Ko končate z izvajanjem vsebnika, ga lahko ustavite z uporabo podman stop ukaz, ki mu sledi ID-vsebnika ki jih lahko dobite pri podman ps ukaz.
# podman stop kontejner-id.
Če želite odstraniti vsebnike, ki jih ne potrebujete več, najprej poskrbite, da jih ustavite, nato pa prikličite datoteko podman rm ukaz, ki mu po možnosti sledi ID ali ime vsebnika.
# podman rm container-id.
Če želite odstraniti več vsebnikov naenkrat z enim ukazom, podajte vsebnik ID -ji ločeni s presledkom.
# podman rm kontejner-id-1 vsebnik-id-2 vsebnik-id-3.
Če želite počistiti vse vsebnike, zaženite ukaz:
# podman rm -a.
Če želite odstraniti sliko, se najprej prepričajte, da so vsi vsebniki, ki so nastali na slikah, ustavljeni in odstranjeni, kot je opisano v prejšnji podtemi.
Nato nadaljujte in zaženite podman -rmi
ukaz, ki mu sledi ID slike, kot je prikazano:
# podman -rmi image -id.
To zaključuje to poglavje o upravljanju in delu s kontejnerji v RHEL 8. Upamo, da je ta vodnik dostojno razumel vsebnike in kako lahko z njimi upravljate in upravljate RHEL sistem uporablja podman in Skopeo.