Uvod u Podmana

1. Uvod

U ovom uputstvu pogledat ćemo Podman (kratica za „Pod Manager“), njegove značajke i upotrebu.

2. Podman

Podman je alat za upravljanje spremnicima otvorenog koda za razvoj, upravljanje i pokretanje OCI spremnika. Pogledajmo neke od prednosti Podmana u usporedbi s drugim alatima za upravljanje spremnicima:

  • Slike koje je stvorio Podman kompatibilne su s drugim alatima za upravljanje spremnicima. Slike koje je stvorio Podman pridržavaju se OCI standarda i stoga ih se može preusmjeriti u druge registre spremnika poput Docker Hub-a
  • Može se izvoditi kao normalan korisnik bez potrebe za root privilegijama. Kada se izvodi kao ne-root korisnik, Podman stvara korisnički imenski prostor unutar kojeg stječe root odobrenje. To mu omogućuje montiranje datotečnih sustava i postavljanje potrebnih spremnika
  • Pruža mogućnost upravljanja mahunama. Za razliku od ostalih alata za vrijeme izvođenja spremnika, Podman omogućuje korisniku upravljanje podsovima (skupinom jednog ili više spremnika koji rade zajedno). Korisnici mogu izvoditi operacije poput stvaranja, popisa, pregledavanja mahuna

Međutim, postoje određena ograničenja za Podmana:

  • Radi samo na sustavima temeljenim na Linuxu. Trenutno Podman radi samo na operativnim sustavima koji se temelje na Linuxu i nema omot za Windows i macOS.
  • Ne postoji alternativa za Docker Compose. Podman nema podršku za lokalno upravljanje više spremnika, slično onome što radi Docker Compose. Implementacija Docker Composea koristeći Podmanovu pozadinu razvija se kao dio podman-sastaviti projekt, ali ovo je još uvijek u tijeku.

3. Usporedba s Dockerom

Sad kad smo shvatili što je Podman i koje su njegove prednosti i ograničenja, usporedimo ga s Dockerom, jednim od najčešće korištenih alata za upravljanje spremnicima.

3.1. Sučelje naredbenog retka (CLI)

Podman nudi isti skup naredbi koje je izložio Docker klijent. Drugim riječima, postoji jedno-na-jedno mapiranje između naredbi ove dvije uslužne programe.

Međutim, naredbe poput podman ps i slike podmana neće prikazati spremnike ili slike stvorene pomoću Dockera. To je zato što je Podmanovo lokalno spremište / var / lib / kontejneri za razliku od / var / lib / docker održava Docker.

3.2. Model spremnika

Docker koristi arhitekturu klijent-poslužitelj za spremnike, dok Podman koristi tradicionalni model fork-exec uobičajeni u Linux procesima. Spremnici stvoreni pomoću Podmana podređeni su proces nadređenog Podman procesa. To je razlog što kada se izvrši naredba za verziju i za Docker i za Podman, Docker navodi verzije i klijenta i poslužitelja, dok Podman navodi samo svoju verziju.

Uzorak izlaza za verzija dockera:

Klijent: Verzija: 17.12.0-ce API verzija: 1.35 Go verzija: go1.9.2 Git commit: c97c6d6 Izgrađeno: Wed Dec 27 20:11:19 2017 OS / Arch: linux / amd64 Server: Engine: Verzija: 17.12.0 -ce API verzija: 1.35 (minimalna verzija 1.12) Go verzija: go1.9.2 Git commit: c97c6d6 Izgrađeno: Wed Dec 27 20:09:53 2017 OS / Arch: linux / amd64 Experimental: false

Uzorak izlaza za verzija podmana:

Verzija: 0.3.2-dev Go Verzija: go1.9.4 Git commit: "4f4a78abb40fa0e8407e8a55d5a67a2650d8fd96" Izgrađeno: ponedjeljak 5. ožujka 11:10:35 2018 OS / Arch: linux / amd64

Budući da se Podman sam izvodi kao proces, u pozadini ne zahtijeva nijedan demon proces. Za razliku od Podmana, Docker zahtijeva daemon proces, Docker daemon, za koordinaciju API zahtjeva između klijenta i poslužitelja.

3.3. Način bez korijena

Kao što je ranije spomenuto, Podman ne zahtijeva root pristup za pokretanje svojih naredbi. Docker, s druge strane, ovisan o demonovom procesu, zahtijeva root privilegije ili zahtijeva da korisnik bude dio lučki radnik skupina da biste mogli izvršavati naredbe Dockera bez privilegija root.

$ sudo usermod -aG docker $ USER

4. Instalacija i upotreba

Krenimo s instaliranjem Podmana. The podman info naredba prikazuje podatke o sustavu Podman i pomaže u provjeri statusa instalacije.

$ podman informacije

Ova naredba prikazuje informacije povezane s hostom, poput verzije jezgre, korištenog i dostupnog prostora za zamjenu, kao i informacije povezane s Podmanom kao što su registri kojima ima pristup za povlačenje i guranje slika, upravljački program za pohranu koji koristi, mjesto za pohranu i ostalo:

host: MemFree: 546578432 MemTotal: 1040318464 SwapFree: 4216320000 SwapTotal: 4216320000 arch: amd64 cpus: 2 ime hosta: base-xenial kernel: 4.4.0-116-generic os: linux uptime: 1m 2.64s nesigurni registri: registri: [] registri : registraries: - docker.io - registry.fedoraproject.org - registry.access.redhat.com store: ContainerStore: number: 0 GraphDriverName: overlay GraphOptions: null GraphRoot: / var / lib / container / storage GraphStatus: Sigurnosni datotečni sustav: extfs Native Diff overlay: "true" Podržava d_type: "true" ImageStore: number: 0 RunRoot: / var / run / container / storage

Pogledajmo neke od osnovnih Podmanovih naredbi.

4.1. Stvaranje slike

Prvo ćemo pogledati stvaranje slike pomoću Podmana. Počnimo s izradom a Dockerfile sa sljedećim sadržajem:

OD centos: najnovije RUN yum -y instalirajte httpd CMD ["/ usr / sbin / httpd", "-D", "FOREGROUND"] IZLOŽITE 80 

Ajmo sada stvoriti sliku pomoću izgraditi naredba:

$ podman graditi.

Ovdje prvo povlačimo osnovnu sliku CentOS-a, instaliramo Apache na nju, a zatim je pokrećemo kao postupak u prvom planu s izloženim priključkom 80. Apache poslužitelju možemo pristupiti izvođenjem ove slike i mapiranjem izložene luke na priključak domaćina.

The izgraditi naredba rekurzivno prosljeđuje sve mape dostupne u kontekstnom direktoriju. Trenutni radni direktorij prema zadanim postavkama postaje kontekst gradnje kada nije naveden nijedan direktorij. Stoga je poželjno da u kontekstnom direktoriju nema datoteka i mapa koje nisu potrebne za stvaranje slike.

4.2. Popis dostupnih slika

The slike podmana naredba navodi sve dostupne slike. Također podržava razne mogućnosti filtriranja slika.

$ podman slike

Ova naredba navodi sve slike dostupne u lokalnom spremištu. Sadrži informacije iz kojeg je spremišta slika izvučena, oznaku, njezin ID slike, vrijeme i veličinu stvorenog.

ID SLIKE REPOSITORIJSKE TAGE STVORENO VELIČINA docker.io/library/centos najnovije 0f3e07c0138f prije 2 mjeseca 227MB 

4.3. Pokrenute slike

The trčanje naredba kreira spremnik sa zadanom slikom i zatim ga izvodi. Pokrenimo CentOS sliku koju smo stvorili ranije

$ podman run -p 80:80 -dit centos

Ova naredba prvo provjerava postoji li lokalna slika dostupna za CentOS. Ako slika nije prisutna lokalno, pokušava je povući iz registara koji su konfigurirani. Ako slika nije prisutna u registrima, prikazuje se pogreška zbog nemogućnosti pronalaska slike.

Gornja naredba trčanje specificira mapiranje izloženog porta 80 spremnika na priključak 80 domaćina i dit zastava određuje pokretanje spremnika u odvojenom i interaktivnom načinu. ID stvorenog spremnika bit će izlazni.

4.4. Brisanje slika

The rmi naredba uklanja slike prisutne u lokalnom spremištu. Više slika može se ukloniti davanjem njihovih ID-ova kao odvojenih razmakom na ulazu. Određujući -a zastavica uklanja sve slike

$ podman rmi 785188cd988c

4.5. Popis kontejnera

Svi dostupni spremnici, uključujući one koji nisu pokrenuti, mogu se navesti pomoću ps -a naredba. Slično kao slike naredba, ovo se također može koristiti s raznim opcijama.

$ podman ps -a

Izlaz za gornju naredbu navodi sve spremnike s informacijama poput slike iz koje je stvoren, naredbe koja se koristi za njegovo pokretanje, statusa, priključaka na kojima se izvodi i imena koja su mu dodijeljena.

ZAPOVIJED SLIKE ID-a KONTEJNERA STVORENA U IMENIMA LUKA STATUSA eed30719cd37 centos / bin / bash 2019-12-09 02:57:37 +0000 UTC Gore prije 14 minuta 0.0.0.0:80->80/udp, 0.0.0.0:80-> 80 / tcp reverent_liskov

4.6. Brisanje spremnika

The rm naredba uklanja spremnike. Ova naredba ne uklanja spremnike u aktivnom ili zaustavljenom stanju. Prvo ih treba zaustaviti, a zatim ukloniti.

$ podman stop eed30719cd37 $ podman rm eed30719cd37

4.7. Stvaranje mahuna

The mahuna stvoriti naredba stvara pod. Naredba create podržava različite opcije.

$ podman pod stvoriti

The mahuna stvoriti naredba stvara mahunu s dolje Spremnik je prema zadanim postavkama povezan s njim, osim ako nije izričito postavljeno s oznakom infra kao lažno.

$ podman pod create --infra = false

Infra spremnik omogućuje Podmanu da poveže razne spremnike u mahuni.

4.8. Uvrštavanje mahuna

The popis mahuna naredba prikazuje sve dostupne mahune

$ podman lista popisa

Izlaz ove naredbe prikazuje informacije kao što su ID pod-a, njegovo ime, broj pridruženih spremnika, ID infra-spremnika ako je dostupan:

STATUS NAZIVA POD ID-a STVOREN # KONTEJNERA INFRA ID 7e0a68528aed gallant_raman Trčanje prije 5 sekundi 1 c6d06673c667

Sve dostupne Podmanove naredbe i njihova upotreba mogu se naći u službenoj dokumentaciji.

5. Zaključak

U ovom uputstvu pogledali smo osnove Podmana i njegove značajke, njegovu usporedbu s Dockerom i nekoliko dostupnih naredbi.

Kao i obično, uzorak koda korišten u ovom članku dostupan je putem GitHub-a.


$config[zx-auto] not found$config[zx-overlay] not found