Instalar Podman en Centos 8

Te explico en esta entrada como instalar la herramienta podman en un sistema GNU/Linux con Centos 8. Si no sabes muy bien de qué trata podman, te comenté de que trataba en esta entrada: «Podman: El sustituto de Docker en RHEL 8 y Centos 8«

Podman es una excelente alternativa a la tecnología de contenedores de Docker, sobre todo si buscamos tener más seguridad, ya que utiliza indicadores únicos (UID) mediante espacios de nombres y se integra perfectamente con systemd.

En esta entrada te enseño como realizar una instalación básica sobre Centos 8, en este caso, sobre un VPS en mi proveedor de confianza clouding.io

Crear un usuario operador

Antes de continuar volvemos a lo que siempre te recomiendo, esto es, crear un usuario diferente de root para el nuevo VPS. Son unos pasos muy sencillos y que te pueden evitar muchos problemas.

Simplemente has de escribir:

useradd -m -c "Usuario Operador" \
-s "/bin/bash" \
-d "/home/operador" \
-G wheel operador
password operador

Una vez hecho esto deshabilitas el acceso al usuario root vía ssh:

sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' \
/etc/ssh/sshd_config

Y reinicias el servicio:

systemctl restart sshd.service

También es recomendable realizar intercambio de llaves con este usuario desde equipo local. Si no sabes como aquí te explico: SSH sin contraseña en Linux

Si te decides por el intercambio de llaves ya no te hará falta el acceso con contraseña, que de hecho es recomendable deshabilitar este tipo de acceso, así:

sed -i 's/ PasswordAuthentication yes/ PasswordAuthentication no/g' \
/etc/ssh/sshd_config

A partir de aquí trabajas con el nuevo usuario.

su - operador

Si al acceder te muestra errores relacionados con «/dev/null», has de lanzar la siguiente orden desde el usuario root:

chmod 666 /dev/null

Instalación de Podman en Centos 8

En un sistema como Centos 8, al igual que su primera hermana Red Hat Enterprise Linux 8, solo has de escribir una simple línea, para instalar podman:

sudo dnf install podman

Una vez instalado ya podemos empezar a trabajar con él.

Para saber la versión recién instalada:

podman version

Un ejemplo de la salida:

Muestra de versión de poman

Y para obtener ayuda:

podman --help

Como te expliqué lo ideal es tener instaladas también las herramientas buildah y skopeo. Con buildah podemos generar nuevos contenedores y con skopeo trabajar con ellos.

Trabajando con podman en Centos 8

La mejor manera de decir es hacer. Veamos el despliegue de un primer contenedor:

podman run -it --rm alpine sh

De esta manera desplegamos el contenedor de la imagen «alpine» que es bastante ligera. Con run hemos indicado que queremos hacer funcionar el contenedor, y con —rm indicamos que al salir de este lo elimine.

Además, accedemos a ella mediante sh, de esta manera comprobamos la versión:

/ # cat /etc/os-release
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.12.1
PRETTY_NAME="Alpine Linux v3.12"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://bugs.alpinelinux.org/"
/ # exit

Una imagen vale más que mil palabras:

Muestra de despliegue de contenedor con podman

Su funcionamiento es muy similar a Docker como se puede observar, ya que los parámetros y su forma de trabajar son prácticamente idénticos. Si lo deseamos podemos crear un alias:

alias docker=podman

Cómo hemos dicho las ordenes como pull, push, build, commit o tag funcionan igual.

Creación de alias de docker que apunta a podman

Una de las ventajas de Podman, que ya hemos comentado antes, es que al permitir unirse a un espacio de nombres de usuario y configurar el acceso de root en el interior, hace que Podman monte ciertos sistemas de archivos y configure el contenedor sin escalar los privilegios.

Fuentes consultadas

Developers.redhat.com – Transitioning from Docker to Podman