Docker en RHEL 8 (+ CentOS 8) = buildah y podman

Por si todavía no lo sabíais, la nueva versión de Red Hat Enterprise Linux (RHEL 8) no cuenta con soporte oficial de Docker. El motivo principal es la aparición de una nueva suite de herramientas propias de RedHat, buildah y podman, cuya principal característica es que no requiere un proceso de sistema para funcionar y son compatibles con imágenes ya existentes de Docker.

Como usuario de Docker, sabrás que se requiere un proceso/demonio para funcionar y ejecutar/coordinar todas las acciones, es el punto central de la gestión de imágenes y contenedores, y también de la integración con el propio Kernel del sistema operativo. Obviamente, la CLI de docker también se apoya en este proceso para todas sus acciones.

El objetivo de no usar un demonio para la gestión de los contenedores es evitar tener un único punto de fallo (el propio proceso), mejorar la seguridad y evitar vulnerabilidades asociadas a la creación de containers y que las acciones de docker tengan que ejecutarse todas con el mismo proceso, que además es superusuario/root.

A grandes rasgos, Buildah es la herramienta que se utiliza para generar containers OCI de forma sencilla. Podman es lo que realmente sustituye a Docker y establece las directivas de seguridad y funcionamiento especificadas en el párrafo anterior. Podman no requiere iniciarse como proceso y los comandos son los mismos que utilizabas anteriormente con Docker (pull, push, build, run, commit, etc.), simplemente sustituye el comando docker por podman. Lo único a tener en cuenta es que Podman almacena las imágenes y contenedores en una ruta diferente, pero siguen siendo compatibles entre sí. Con Buildah podréis disfrutar de una gran cantidad de comandos relacionados con la gestión y creación de imágenes y containers. Cuando se hacen builds a través de Podman, realmente se están utilizando las mismas funcionalidades que con Buildah, usa el mismo código.

Instalación de Podman

La instalación es sencilla, porque únicamente requiere instalar el paquete a través de yum/dnf:

# yum  install podman

No lo he dicho, pero si no os convence esta solución y queréis seguir utilizando Docker, podéis instalar Docker CE usando el repositorio oficial del producto como si fuera un software de terceros. La ejecución de comandos, como decía antes, es igual que con docker:

$ podman pull centos:latest
$ podman run -it centos bash
$ podman push centos_foo docker-daemon:centos_foo:latest

Si queréis, en otra entrada podemos ver al detalle como se instalaría Docker como software de terceros, simplemente es añadir el repo correspondiente y proceder con la instalación.