Cómo instalar y utilizar Podman en CentOS 8

Podman es una herramienta gratuita, de código abierto y nativa de Linux que se utiliza para ejecutar, construir, compartir y desplegar aplicaciones utilizando contenedores. Te permite gestionar contenedores e imágenes, volúmenes montados en esos contenedores. Podman es un motor de contenedorización sin demonio, por lo que está ganando popularidad rápidamente entre los desarrolladores como sustituto de Docker.

En este post, te mostraremos cómo instalar y utilizar Podman en CentOS 8.

Requisitos previos

  • Un servidor que ejecute CentOS 8.
  • Una contraseña de root configurada en el servidor.

Instalar Podman

En primer lugar, necesitarás instalar el repositorio EPEL en tu sistema. Puedes instalarlo utilizando el siguiente comando:

dnf install epel-release -y

Tras instalar el repo EPEL, ejecuta el siguiente comando para instalar Podman:

dnf install podman -y

Una vez instalado Podman, verifica la versión instalada de Podman con el siguiente comando:

podman --version

Deberías ver la siguiente salida:

podman version 3.0.2-dev

Para obtener información detallada, ejecuta el siguiente comando:

podman info

Deberías ver la siguiente salida:

host:
  arch: amd64
  buildahVersion: 1.19.8
  cgroupManager: systemd
  cgroupVersion: v1
  conmon:
    package: conmon-2.0.26-3.module_el8.4.0+830+8027e1c4.x86_64
    path: /usr/bin/conmon
    version: 'conmon version 2.0.26, commit: 9dea73702793340168deaa5a0d21ca5ce1fcb5d7'
  cpus: 2
  distribution:
    distribution: '"centos"'
    version: "8"
  eventLogger: file
  hostname: centos8
  idMappings:
    gidmap: null
    uidmap: null
  kernel: 4.18.0-193.6.3.el8_2.x86_64
  linkmode: dynamic
  memFree: 479723520
  memTotal: 4130037760
  ociRuntime:
    name: runc
    package: runc-1.0.0-73.rc93.module_el8.4.0+830+8027e1c4.x86_64
    path: /usr/bin/runc
    version: |-
      runc version spec: 1.0.2-dev
      go: go1.15.7
      libseccomp: 2.4.1
  os: linux

Buscar y descargar una imagen con Podman

Para encontrar una imagen de Debian, ejecuta el siguiente comando:

podman search debian

Deberías ver todas las imágenes Debian disponibles en el siguiente resultado:

INDEX      NAME                                                        DESCRIPTION                                      STARS   OFFICIAL  AUTOMATED
docker.io  docker.io/library/debian                                    Debian is a Linux distribution that's compos...  3894    [OK]      
docker.io  docker.io/smartentry/debian                                 debian with smartentry                           6                 [OK]
docker.io  docker.io/library/ubuntu                                    Ubuntu is a Debian-based Linux operating sys...  12423   [OK]      
docker.io  docker.io/samueldebruyn/debian-git                          a minimal docker container with debian and g...  22                [OK]
docker.io  docker.io/i386/debian                                       Debian is a Linux distribution that's compos...  14                
docker.io  docker.io/jdub/debian-sources-resource                      Concourse CI resource to check for updated D...  0                 [OK]
docker.io  docker.io/itscaro/debian-ssh                                debian:jessie                                    28                [OK]
docker.io  docker.io/eboraas/debian                                    Debian base images, for all currently-availa...  8                 [OK]
docker.io  docker.io/amd64/debian                                      Debian is a Linux distribution that's compos...  6                 
docker.io  docker.io/arm32v7/debian                                    Debian is a Linux distribution that's compos...  72                
docker.io  docker.io/dockershelf/debian                                Repository for docker images of Debian. Test...  1                 [OK]
docker.io  docker.io/ppc64le/debian                                    Debian is a Linux distribution that's compos...  4                 
docker.io  docker.io/arm64v8/debian                                    Debian is a Linux distribution that's compos...  26                
docker.io  docker.io/spritsail/debian-builder                          A Docker image based on debian:slim ideal fo...  1                 [OK]
docker.io  docker.io/arm32v5/debian                                    Debian is a Linux distribution that's compos...  2                 
docker.io  docker.io/vpgrp/debian                                      Docker images of Debian.                         2                 
docker.io  docker.io/multiarch/debian-debootstrap                      multiarch ports of debian-debootstrap            13                
docker.io  docker.io/1and1internet/debian-9-nginx-php-7.2-wordpress-4  debian-9-nginx-php-7.2-wordpress-4               0                 [OK]
docker.io  docker.io/mdoerges/debian-buster-nginx                      Debian Buster with Nginx                         0                 
docker.io  docker.io/fleshgrinder/debian                               Debian base images for production and multis...  0                 [OK]
docker.io  docker.io/s390x/debian                                      Debian is a Linux distribution that's compos...  2                 
docker.io  docker.io/vicamo/debian                                     Debian docker images for all versions/archit...  3                 
docker.io  docker.io/konstruktoid/debian                               Debian base image                                0                 [OK]
docker.io  docker.io/casept/debian-amd64                               A debian image built from scratch. Mostly fo...  0                 
docker.io  docker.io/vergissberlin/debian-development                  Docker debian image to use for development, ...  6                 [OK]

A continuación, descarga la imagen de Debian utilizando el siguiente comando:

podman pull debian

Deberías obtener el siguiente resultado:

Resolved "debian" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
Trying to pull docker.io/library/debian:latest...
Getting image source signatures
Copying blob 0bc3020d05f1 done  
Copying config 7a4951775d done  
Writing manifest to image destination
Storing signatures
7a4951775d157843b47250a2a5cc7b561d2abe0b29ae6f19737a04635302eacf

A continuación, verifica la imagen descargada utilizando el siguiente comando:

podman images

Deberías obtener el siguiente resultado:

REPOSITORY                TAG     IMAGE ID      CREATED       SIZE
docker.io/library/debian  latest  7a4951775d15  33 hours ago  119 MB

Ejecutar un contenedor con Podman

Ahora puedes lanzar un contenedor desde la imagen de Debian utilizando el siguiente comando:

podman run -dit --name debian-container debian

Deberías obtener el siguiente resultado:

5fb79d2ff9748be9474977852db989d4de489546526683e840c501249823a4bf

También puedes verificar el contenedor en ejecución utilizando el siguiente comando:

podman ps

Deberías ver la siguiente salida:

CONTAINER ID  IMAGE                            COMMAND  CREATED         STATUS             PORTS   NAMES
5fb79d2ff974  docker.io/library/debian:latest  bash     29 seconds ago  Up 28 seconds ago          debian-container

Para conectar el contenedor en ejecución, ejecuta el siguiente comando:

podman attach debian-container

Una vez conectado, deberías obtener la siguiente salida:

root@5fb79d2ff974:/#

También puedes ejecutar cualquier comando dentro del contenedor en ejecución:

root@5fb79d2ff974:/# apt-get update

Para salir del contenedor Debian, ejecuta el siguiente comando:

root@5fb79d2ff974:/# exit

Para comprobar el registro del contenedor en ejecución, ejecuta el siguiente comando:

podman logs -f debian-container

Para detener el contenedor en ejecución, ejecuta el siguiente comando:

podman stop debian-container

Para eliminar el contenedor detenido, ejecuta el siguiente comando:

podman rm debian-container

Gestionar Pods con Podman

En esta sección, te mostraremos cómo gestionar pods utilizando Podman.

Para crear un nuevo pod llamado webserver, ejecuta el siguiente comando:

podman pod create --name webserver

Deberías obtener la siguiente salida:

9cc9b2bdcfe1b774129f2d5b50a4b52c746a0f8917780ae7f2c786fa7767cd19

Para listar todos los pods, ejecuta el siguiente comando:

podman pod list

Deberías obtener el siguiente resultado:

POD ID        NAME       STATUS   CREATED         INFRA ID      # OF CONTAINERS
9cc9b2bdcfe1  webserver  Created  21 seconds ago  3a0c7750fed9  1

Para comprobar un contenedor en ejecución dentro de tu pod, ejecuta el siguiente comando:

podman ps -a --pod

Deberías obtener el siguiente resultado

CONTAINER ID  IMAGE                                         COMMAND  CREATED         STATUS   PORTS   NAMES               POD ID        PODNAME
3a0c7750fed9  registry.access.redhat.com/ubi8/pause:latest           38 seconds ago  Created          9cc9b2bdcfe1-infra  9cc9b2bdcfe1  webserver

Para añadir un nuevo contenedor CentOS a un pod, ejecuta el comando siguiente:

podman run -dt --pod webserver centos:latest top

Deberías obtener el siguiente resultado:

Resolved "centos" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
Trying to pull quay.io/centos/centos:latest...
Getting image source signatures
Copying blob 7a0437f04f83 done  
Copying config 300e315adb done  
Writing manifest to image destination
Storing signatures
fcd9a724097759c29330bd57e557eab9778b3d6736695ebf9afedfbd9c0db5e3

Ahora, verifica el contenedor añadido utilizando el siguiente comando:

podman ps -a --pod

Deberías obtener el siguiente resultado:

CONTAINER ID  IMAGE                                         COMMAND  CREATED             STATUS             PORTS   NAMES                 POD ID        PODNAME
3a0c7750fed9  registry.access.redhat.com/ubi8/pause:latest           About a minute ago  Up 16 seconds ago          9cc9b2bdcfe1-infra    9cc9b2bdcfe1  webserver
fcd9a7240977  quay.io/centos/centos:latest                  top      17 seconds ago      Up 16 seconds ago          recursing_goldwasser  9cc9b2bdcfe1  webserver

Conclusión

En la guía anterior, has aprendido a instalar y utilizar Podman para gestionar contenedores en CentOS 8. Podman es muy similar a Docker y un gran sustituto para facilitarte el trabajo.

También te podría gustar...