Despre Linux

  • Facebook
  • Twitter
  • LinkedIn
  • Acasă
  • Linux
    • Comenzi Linux
    • Tutoriale
  • Kubernetes
  • RHCSA
    • Exerciții RHCSA
    • SELinux
    • Permisiuni
  • General
    • Open source
  • Contact

Podman: gestionarea podurilor și containerelor

19 iunie 2021 By Bobses Un comentariu

Podman (the POD MANager) este un instrument pentru gestionarea întregului ecosistem al containerelor dintr-o distribuție Linux: cu ajutorul bibliotecii libpod, Podman poate crea și lucra cu poduri, containere, imagini de containere, volume montate în containere. Podman este creat de RedHat, dar poate fi instalat ușor și pe alte distribuții. Este construit și conceput pentru a respecta conformitatea OCI.

Cu Podman, containerele pot fi rulate atât ca root, cât și de sub userul obișnuit (rootless).

Podman poate fi folosit ca înlocuitor pentru Docker, ambele având funcționalități care se suprapun. Ambele pot crea imagini pe care celălalt instrument le poate folosi pentru a rula containere.

Instalarea Podman

Instalarea este simplă, indiferent de distribuție:

În CentOS 7/ RedHat 7

sudo yum install podman

În CentOS 8/ RedHat 8

În RedHat 8, Podman este inclus în modulul container-tools, împreună cu Buildah si Skopeo (alte două instrumente dedicate containerelor create de Red Hat).

sudo dnf config-manager --set-enabled PowerTools

sudo dnf install -y @container-tools

În Ubuntu

sudo apt install podman

Pentru instalarea în alte distribuții vezi aici.

După instalare, verificăm versiunea:

$ podman version
Version: 3.1.2
API Version: 3.1.2
Go Version: go1.15.2
Built: Thu Jan 1 02:00:00 1970
OS/Arch: linux/amd64

Imagini și containere

Înn mod voit, Podman s-a aliniat la Docker, astfel că majoritatea comenzilor sunt asemănătoare și putem rula comenzile cu care suntem deja obișnuiți din Docker CLI - mai mult, putem face un alias de genul alias docker=podman și aproape nici nu ne dăm seama că lucrăm cu alt tool.

podman pull nume_imagine:latest
podman run nume_imagine:latest --name nume_container
podman ps
podman rm nume_container

În imaginea de mai jos am pornite 4 containere cu podman: Prometheus, Alertmanager, Node-Exporter și Grafana (într-un articol viitor am să prezint modul de a porni un container podman la startul unei mașini - nu mai exista un daemon în spate care să-l pornească):

comanda podman ps
Comanda podman ps

Ce are diferit Podman față de Docker

Deși este aproape similar lui Docker, Podman are câteva diferențe față de Docker. Prima, și cea mai importantă, este arhitectura - Podman este daemonless, adică nu există un proces în spate care să monitorizeze containerele. Când rulăm o comandă podman, interacționăm direct cu kernelul Linux prin intermediul procesului runC container runtime (nu e un daemon). Docker CLI este dependent de daemon-ul Docker, care rulează ca serviciu: Docker CLI trimite comenzi către daemon, iar daemon-ul acționează apoi pentru a crea containerele.

Poduri

O altă diferență majoră față de Docker este aceea că Podman poate lucra cu poduri - containerele pot forma poduri similare cu conceptul de poduri din Kubernetes.

Pentru a crea un pod, rulăm comanda:

podman pod create --name nume_pod

Containerele pot fi adăugate într-un pod adăugând flagul --run comenzii podman run:

podman run --pod nume_pod --name image-1 my-image:latest
podman run --pod nume_pod --name image-2 another-image:latest

Gestionarea podurilor:

podman kill nume_pod # oprește toate containerele
podman restart nume_pod # restartează toate containerele
podman stop nume_pod # oprește toate container
ele

Conceptul de pod e puternic, permițându-ne să gestionăm mai multe containere în mod agregat. Putem crea containere de aplicații (frontend, backend), dar și o bază de date, apoi să le adăugăm într-un pod și să le gestionăm pe toate în același timp. Putem opri, porni, șterge containerele dintr-un pod folosind comenzile podman pentru poduri.

Când trebuie să exportăm definiția unui pod, Podman poate produce fișiere manifest YAML compatibile cu Kubernetes - putem lua acest fișier și să-l aplicăm direct într-un cluster kubernetes. Comanda pentru generarea fișierelor YAML:

podman generate kube
podman-vs-docker
Podman versus Docker

Containere rootless

Podman suportă containere rootless - containere care nu rulează sub userul root pentru a preveni potențiale vulnerabilități. Mai nou, și Docker suportă acum modul rootless - dar primul a fost Podman. 🙂

Concluzie

De ceva timp prefer Podman în defavoarea Docker: prima dată m-a atras la el faptul că nu există un serviciu în spate care să-l gestioneze. Pentru cei care erau obișnuiți cu docker-compose, de ceva timp a apărut și podman-compose, așa ca nu cred că va lipsi cuiva foarte mult docker (va urma un scurt articol despre asta).

Prin abilitatea sa de a exporta fișiere YAML compatibile, Podman esta gata să facă trecerea la seviciile de gestionare și orchestrare a containerelor, cum este Kubernetes.

Resurse

  • Website Podman: www.podman.io
  • GitHub Podman: github.com/containers/podman
  • RedHat: access.redhat.com/documentation/...
  • RedHat: developers.redhat.com/blog/2019/01/15/podman-managing-containers-pods

Partajează asta:

  • Dă clic pentru a partaja pe Facebook(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe LinkedIn(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe Twitter(Se deschide într-o fereastră nouă)

Similare

Din categoria: General Etichete: containere, docker, k8s, kubernetes, podman

Trackbacks

  1. Podman: containere Prometheus, Alertmanager și Grafana | Despre Linux spune:
    26 iunie 2021 la 9:22

    […] ce am instalat Podman, nu ne rămâne decât să ridicăm containerele […]

    Răspunde

Lasă un răspuns Anulează răspunsul

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Copyright © 2023 · Bobses

Administrează consimțămintele pentru cookie-uri
Pentru a oferi cea mai bună experiență, folosim tehnologii, cum ar fi cookie-uri, pentru a stoca și/sau accesa informațiile despre dispozitive. Consimțământul pentru aceste tehnologii ne permite să procesăm date, cum ar fi comportamentul de navigare sau ID-uri unice pe acest site. Dacă nu îți dai consimțământul sau îți retragi consimțământul dat poate avea afecte negative asupra unor anumite funcționalități și funcții.
Funcționale Mereu activ
Stocarea tehnică sau accesul sunt strict necesare în scopul legitim de a permite utilizarea unui anumit serviciu cerut în mod explicit de către un abonat sau un utilizator sau în scopul exclusiv de a executa transmiterea unei comunicări printr-o rețea de comunicații electronice.
Preferințe
Stocarea tehnică sau accesul este necesară în scop legitim pentru stocarea preferințelor care nu sunt cerute de abonat sau utilizator.
Statistici
Stocarea tehnică sau accesul care sunt utilizate exclusiv în scopuri statistice. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
Stocarea tehnică sau accesul sunt necesare pentru a crea profiluri de utilizator pentru a trimite publicitate sau pentru a urmări utilizatorul pe un site web sau pe mai multe site-uri web în scopuri de marketing similare.
Administrează opțiunile Administrează serviciile Administrează vânzătorii Citește mai multe despre aceste scopuri
Vizualizează preferințele
{title} {title} {title}