Podman o Pod Manager Tool és un motor de contenidors de codi obert sense dimoni per desenvolupar, gestionar i executar contenidors OCI al nostre sistema Linux. Podman ha emergit com una eina versàtil de gestió de contenidors, que ofereix una alternativa lleugera a Docker, especialment afavorida per aquells que busquen més seguretat i flexibilitat en els seus entorns de contenidors.
En aquesta guia, veurem els passos per instal·lar Podman a Ubuntu 22.04, amb un tutorial senzill tant per a principiants com per a usuaris experimentats. Tant si és la primera vegada que explores la contenidorització com si vols ampliar les teves habilitats, aquest tutorial et proporcionarà els coneixements necessaris per aprofitar la potència de Podman al teu entorn Ubuntu.
Requisits
- Un servidor al núvol que executi Ubuntu 22.04.
- Accés root
Abans de començar, cal actualitzar el sistema a l'última versió perquè puguis instal·lar Podman des dels repositoris d'Ubuntu. Pots fer-ho amb l'ordre següent:
# apt-get update && apt-get upgrade -y
Un cop el sistema estigui actualitzat, pots continuar amb el pas següent.
Per defecte, Podman està disponible al repositori predeterminat d'Ubuntu 22.04, de manera que pots procedir directament a instal·lar-lo. T'expliquem com instal·lar Podman amb el repositori d'Ubuntu i amb el PPA del projecte oficial, que garanteix l'accés a les últimes versions de Podman més enllà del que es troba als repositoris oficials d'Ubuntu 22.04.
Instal·la Podman amb l'ordre següent:
# apt-get install podman
Comprova la versió:
# podman info
Per iniciar el procés, hauràs d'afegir el repositori al sistema. Executa l'ordre següent:
# add-apt-repository -y ppa:projectatomic/ppa
Actualitza els paquets
# apt update
instal·la Podman amb l'ordre següent:
# apt install podman
Comprova la versió:
# podman info
Un cop instal·lat Podman, pots comprovar tota la informació amb l'ordre següent:
# podman info
arch: amd64
buildahVersion: 1.23.1
cgroupControllers:
- cpuset
- cpu
- io
- memory
- hugetlb
- pids
- rdma
- misc
cgroupManager: systemd
cgroupVersion: v2
conmon:
package: 'conmon: /usr/bin/conmon'
path: /usr/bin/conmon
version: 'conmon version 2.0.25, commit: unknown'
cpus: 1
distribution:
codename: jammy
distribution: ubuntu
version: "22.04"
eventLogger: journald
hostname: podman
idMappings:
gidmap: null
uidmap: null
kernel: 5.15.0-25-generic
linkmode: dynamic
logDriver: journald
memFree: 473825280
memTotal: 2073772032
ociRuntime:
name: crun
package: 'crun: /usr/bin/crun'
path: /usr/bin/crun
version: |-
crun version 0.17
commit: 0e9229ae34caaebcb86f1fde18de3acaf18c6d9a
spec: 1.0.0
+SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +YAJL
os: linux
remoteSocket:
exists: true
path: /run/podman/podman.sock
security:
apparmorEnabled: true
capabilities: CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT
rootless: false
seccompEnabled: true
seccompProfilePath: /usr/share/containers/seccomp.json
selinuxEnabled: false
serviceIsRemote: false
slirp4netns:
executable: /usr/bin/slirp4netns
package: 'slirp4netns: /usr/bin/slirp4netns'
version: |-
slirp4netns version 1.0.1
commit: 6a7b16babc95b6a3056b33fb45b74a6f62262dd4
libslirp: 4.6.1
swapFree: 255995904
swapTotal: 255995904
uptime: 23m 5.45s
plugins:
log:
- k8s-file
- none
- journald
network:
- bridge
- macvlan
volume:
- local
registries: {}
store:
configFile: /etc/containers/storage.conf
containerStore:
number: 0
paused: 0
running: 0
stopped: 0
graphDriverName: overlay
graphOptions: {}
graphRoot: /var/lib/containers/storage
graphStatus:
Backing Filesystem: extfs
Native Overlay Diff: "true"
Supports d_type: "true"
Using metacopy: "false"
imageStore:
number: 0
runRoot: /run/containers/storage
volumePath: /var/lib/containers/storage/volumes
version:
APIVersion: 3.4.4
Built: 0
BuiltTime: Thu Jan 1 01:00:00 1970
GitCommit: ""
GoVersion: go1.18.1
OsArch: linux/amd64
Version: 3.4.4
Configurar els registres de configuració de Podman
Podman admet múltiples registres dels quals pots extreure imatges de contenidors. Quan s'especifica un nom de contenidor que no conté un registre, Podman cerca una llista de registres al fitxer de configuració del registre (/etc/containers/registries.conf) per extreure la imatge del contenidor.
Pots afegir diferents registres d'imatges de contenidors disponibles com ara docker.io(també pots afegir altres registres) al fitxer de configuració.
Edita el fitxer /etc/containers/registries.conf:
# nano /etc/containers/registries.conf
Enganxa el contingut següent al final del fitxer i desa'l.
[registries.search]
registries=["registry.access.redhat.com", "registry.fedoraproject.org", "docker.io"]
Treballar amb les imatges de Podman
En aquesta secció, et mostrarem com cercar i extreure imatges i executar un contenidor amb l'ordre Podman
# podman search ubuntu-22.04
Hauries de veure totes les imatges d'Ubuntu 22.04 a la sortida següent:
Per extreure les imatges de Podman pots executar l'ordre podman pull .
A l'exemple extraurem l'última versió de la imatge de nginx: La sortida mostra que l'última versió de nginx es pot extreure de qualsevol dels 3 registres, tant de docker com de redhat o fedoraproject.
# podman pull nginx
A continuació, per fer alguna prova, descarrega i executa la imatge de “hello-world” amb l'ordre següent:
# podman run hello-world
Hauries de veure el resultat següent:
Hello from Docker!
This message shows that your installation appears to be working correctly.
Aquest missatge mostra que la instal·lació funciona correctament.
Per generar aquest missatge, Docker ha fet els passos següents:
- El client Docker ha contactat amb el dimoni Docker.
- El dimoni Docker ha obtingut la imatge “hello-world” del Hub de Docker.
- El dimoni de Docker ha creat un contenidor nou a partir d'aquesta imatge que executa l'executable que produeix el resultat que estàs llegint.
- El dimoni de Docker ha enviat aquest resultat al client Docker, que l'ha enviat al teu terminal.
Per provar alguna cosa més ambiciosa, pots executar un contenidor Ubuntu:
Primer instal·lem podman-docker
# apt install podman-docker
Ara executem l'ordre següent per executar el contenidor.
# docker run -it ubuntu bash
Comparteix imatges, automatitza fluxos de treball i molt més amb un ID de Docker gratuït: https://hub.docker.com/
Per trobar més exemples i idees, pots visitar: https://docs.docker.com/get-started/
A continuació, pots veure la llista d'imatges descarregades amb l'ordre següent:
# podman images
Per llistar el contenidor Podman que s'està executant al sistema, executa l'ordre:
# podman ps -a
Recorda, si tens consultes sobre aquesta o qualsevol altra qüestió relacionada amb els teus servidors a Clouding, no dubtis a escriure a soporte@clouding.io Som al teu costat per al que necessitis, consulta'ns!