Podman es una plataforma de contenedores sin demonios gratuita y de código abierto que se creó para desarrollar, administrar e implementar contenedores y pods en un entorno Linux. Los pods son un grupo de contenedores que generalmente se implementan en el mismo sistema host.
Podman está reemplazando gradualmente a Docker, que es otra plataforma de contenedorización que los desarrolladores usan para implementar sus aplicaciones junto con dependencias y bibliotecas. La principal diferencia entre los dos es que, mientras que docker es un demonio que se puede iniciar, habilitar, detener y reiniciar, podman no lo es. Podman se considera más seguro debido a su capacidad de registro de auditoría en contenedores. La auditoría juega un papel muy importante en el seguimiento de los procesos que se ejecutan en un contenedor.
Ahora lo llevaremos de la A a la Z sobre cómo instalar podman y cómo ejecutar y administrar contenedores con podman.
Instalación de podman en CentOS 8
Para instalar podman en CentOS 8, simplemente inicie sesión como usuario raíz y ejecute el comando:
[[email protected] ~]# dnf install podman
Instalación de podman en RHEL 8
Ejecute el siguiente comando para instalar Podman en el sistema RHEL 8
[[email protected] ~]# dnf module install container-tools -y
Después del proceso de instalación exitoso, verifique la versión de podman usando el comando:
[[email protected] ~]# podman --version podman version 1.0.5 [[email protected] ~]#
Ejecute el siguiente comando para ver la información del sistema podman
[[email protected] ~]# podman info
Esta es una confirmación de que podman se ha instalado correctamente.
Buscar y descargar imágenes de contenedores con Podman
Ahora cambiemos de marcha y veamos las diversas operaciones que podemos realizar con podman. Para buscar una imagen, utilice la sintaxis
#podman buscar nombre_imagen
Por ejemplo, para buscar la imagen del Sistema Fedora, ejecute el comando:
[[email protected] ~]# podman search fedora
En el resultado, puede ver el registro desde el que está buscando, en este caso, quay.io y una breve descripción de las imágenes.
Para descargar la imagen, simplemente ejecute
#podman tirar nombre_imagen
Descargaremos 2 imágenes adicionales, Fedora y Ubuntu
[[email protected] ~]# podman pull fedora [[email protected] ~]# podman pull ubuntu
Para ver las imágenes descargadas, ejecute el comando:
[[email protected] ~]# podman images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/ubuntu latest 549b9b86cb8d 35 hours ago 66.6 MB docker.io/library/fedora latest f0858ad3febd 7 weeks ago 201 MB [[email protected] ~]#
Ejecute contenedores con podman
Para ejecutar un contenedor utilizando una imagen de Fedora que imprime un mensaje en la pantalla, ejecute:
[[email protected] ~]# podman run --rm fedora /bin/echo "Hello Geeks! Welcome to Podman" Hello Geeks! Welcome to Podman [[email protected] ~]#
Nota: El comando anterior también eliminará el contenedor después de mostrar el mensaje.
Inicie un contenedor usando la imagen de ubuntu, supongamos que el nombre del contenedor es «web-ubuntu»
[[email protected] ~]# podman run -dit --name web-ubuntu -p 80:80 ubuntu 0ffe7bd1c08d89f4443f3fe81a18163a3d0c52ba53ce834c30643fb4678e8be9 [[email protected] ~]#
El comando anterior de podman iniciará un contenedor y redirigirá 80 solicitudes de puerto desde el sistema podman al contenedor de espacio web en el puerto 80.
Inicie un contenedor más usando la imagen de Fedora con el nombre db-space, adjunte un volumen adicional a este contenedor (/opt/dbspace)
[[email protected] ~]# podman run -dit --name db-space -v /opt/dbspace:/mnt -p 3306:3306 fedora 9fe2ae21ca6373b827db3e965300920b1bc1a9cf19206031f1c8819889e12520 [[email protected] ~]#
El comando anterior de podman iniciará un contenedor y adjuntará una carpeta como un volumen «/opt/dbspace» y también redirigirá la solicitud de puerto 3306 del sistema podman al contenedor de espacio de base de datos en el puerto 3306.
Para ver solo los contenedores en ejecución, ejecute el siguiente comando podman:
[[email protected] ~]# podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9fe2ae21ca63 docker.io/library/fedora:latest /bin/bash 14 minutes ago Up 14 minutes ago 0.0.0.0:3306->3306/tcp db-space 0ffe7bd1c08d docker.io/library/ubuntu:latest /bin/bash 15 minutes ago Up 15 minutes ago 0.0.0.0:80->80/tcp web-ubuntu [[email protected] ~]#
Para enumerar todos los contenedores, ya sea que estén detenidos o en ejecución, ejecute el comando:
[[email protected] ~]# podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 22ca547d980f docker.io/library/ubuntu:latest /bin/bash About a minute ago Exited (0) About a minute ago wiki-container 9fe2ae21ca63 docker.io/library/fedora:latest /bin/bash 15 minutes ago Up 15 minutes ago 0.0.0.0:3306->3306/tcp db-space 0ffe7bd1c08d docker.io/library/ubuntu:latest /bin/bash 16 minutes ago Up 16 minutes ago 0.0.0.0:80->80/tcp web-ubuntu [[email protected] ~]#
Puede inspeccionar un contenedor usando su ID ejecutando:
[[email protected] ~]# podman inspect 0ffe7bd1c08d
Para obtener el indicador de shell del contenedor existente, use a continuación «adjuntar podman” comando, en este caso, accediendo al contenedor db-space a través de su id, use el comando
# podman adjuntar
[[email protected] ~]# podman attach 9fe2ae21ca63 [[email protected] /]#
Para salir del indicador de shell del contenedor sin salir o detenerlo, use las teclas «ctrl+p+q”
Visualización de registros de contenedores
Para ver los registros generados por un contenedor específico, use la sintaxis:
# podman registra
Por ejemplo,
[[email protected] ~]# podman logs 9fe2ae21ca63
Para ver los últimos registros, ejecute
[[email protected] ~]# podman logs --latest 9fe2ae21ca63
Si desea ver los registros en tiempo real, use la opción -f como se muestra
# podman logs -f
[[email protected] ~]# podman logs -f 9fe2ae21ca63
Quitar contenedores con podman
Una vez que esté satisfecho trabajando con sus contenedores, puede optar por eliminarlos. Pero primero, enumere todos los contenedores
[[email protected] ~]# podman ps -a
Para eliminar un solo contenedor, use la opción rm seguida de la identificación del contenedor como se muestra en el siguiente comando.
Supongamos que queremos eliminar «wiki-container»
[[email protected] ~]# podman rm 22ca547d980f 22ca547d980f3051d72eb9f475777e31244c78fc038c41e0250c7d5fe44cdbc5 [[email protected] ~]#
Nota: En caso de que el contenedor se esté ejecutando y desee eliminarlo sin detenerlo, use la opción -f junto con rm, el ejemplo se muestra a continuación,
[email protected] ~]# podman rm 22ca547d980f
Gestión de contenedores de contenedores en podman
En esta sección, veremos cómo puede administrar pods usando podman. Los pods son como lo que encontraría en una configuración de Kubernetes.
Para crear un pod, digamos un pod llamado servidor web, ejecute el comando:
[[email protected] ~]# podman pod create --name webserver 920653c492450f295f92036910649542d40b80d10cc95b836acb30eb91a579ef [[email protected] ~]#
Para enumerar los pods, ejecute debajo del comando podman,
[[email protected] ~]# podman pod list POD ID NAME STATUS CREATED # OF CONTAINERS INFRA ID 920653c49245 webserver Running About a minute ago 1 87adc0272afc [[email protected] ~]#
Al crear un nuevo pod, notará que lleva un contenedor llamado infra. Su propósito principal es acomodar espacios de nombres que están asociados con el pod y esto permite que el pod se comunique con otros contenedores.
[[email protected] ~]# podman ps -a --pod
Puede agregar un contenedor a un pod ejecutando:
[[email protected] ~]# podman run -dt --pod webserver centos:latest top
Ejecute debajo del comando podman para verificar si el contenedor se agrega o no al pod
[[email protected] ~]# podman ps -a --pod
Salida de los dos comandos anteriores:
El resultado confirma que lanzamos con éxito un contenedor al pod. Eso es todo de este artículo.
Conclusión
Podman está avanzando a pasos agigantados en el ecosistema de contenedores y parece prometedor a medida que toma gradualmente el lugar de Docker. Si bien Docker ciertamente estará disponible por un tiempo, no podemos enfatizar lo suficiente que el futuro de Podman parece brillante. En este tema, aprendió a instalar y usar Podman para ejecutar contenedores.