martes, 13 de octubre de 2020

Docker vs Nueva Generación de Distribuciones GNU/Linux

 

        Con el lanzamiento de Fedora 32 y junto a las nuevas versiones de las distribuciones GNU/Linux mas utilizadas, los usuarios habituales de Docker se han enfrentado a un pequeño reto. Si bien actualmente la página oficial de Docker aclara que ofrece soporte solo para las versiones 30 y 31 de Fedora, ya se encuentra disponible en los repositorios de docker los paquetes para la version 32. Sin embargo, no han logrado corregir del todo los problemas reportados.

        Igualmente en el mercado existen mas alternativas a docker, como lo son Podman y Buildah. Pero para muchos usuarios existentes, cambiar ahora mismo de herramientas puede no ser el mejor momento. Asi que, este articulo puede ayudarte a configurar tu entorno Docker usando Moby en Fedora 32.


Paso 0: Eliminar Conflictos

           Este paso es para cualquier usuario que haya actualizado desde Fedora 30 o 31. Si se trata de una instalación nueva de Fedora 32 (desde cero), puede saltarse este paso y pasar al siguiente.

        Para quitar Docker y todos sus componentes relacionados, ejecute los siguientes comandos:

sudo dnf remove docker-* containerd.io
sudo dnf config-manager --disable docker-*

Paso 1: Preparación Previa y Algunos Ajustes

        Con las últimas dos versiones de Fedora, el sistema operativo se ha pasado a dos nuevas tecnologías: CGroups y NFTables para Firewall. Aunque los detalles de estas nuevas tecnologías están fuera del alcance de este tutorial, es un hecho triste que Docker no las soporte todavía. Por lo tanto, tendrás que hacer algunos cambios para facilitar la instalación de Docker en Fedora 32.


Habilitar CGroups antiguos

        La implementación anterior de CGroups todavía es compatible y se puede habilitar usando el siguiente comando:

sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"

 

Colocar a Docker en la Whitelist del Firewall

          Para permitir que Docker tenga acceso a la red, se necesitan dos comandos:

sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0
sudo firewall-cmd --permanent --zone=FedoraWorkstation --add-masquerade

           El primer comando agregará la interfaz de Docker al entorno confiable que le permitirá a Docker realizar conexiones remotas. El segundo comando permitirá que Docker realice conexiones locales. Esto es particularmente útil cuando hay varios contenedores Docker trabajando juntos en entorno de desarrollo.

 

Paso 2: Instalando Moby

          Moby es la versión de código abierto desarrollada por Docker. Se basa en el mismo código, pero viene sin marcas comerciales (trademark). Está incluido en el repositorio principal de Fedora, lo que facilita su instalación.

sudo dnf install moby-engine docker-compose

           Esto instala moby-engine, docker-compose, containerd y algunas otras librerías necesarias. Una vez concluida la instalación, tendrá que habilitar el demonio de Docker en todo el sistema para poder usarlo. Para ello, ejecute el siguiente comando:

sudo systemctl enable docker


 

 

Paso 3: Reiniciar y Probar

          Para asegurarse de que todos esta en su lugar y las configuraciones se apliquen correctamente, ahora tendrá que reiniciar su máquina.

sudo systemctl reboot

           Después de eso, puede validar la instalación usando el paquete hello-world de Docker.

sudo docker run hello-world

           A continuación, debería recibir el mensaje "Hello from Docker!" a menos que algo saliera mal.

 

 

Ejecutando Docker Sin Necesidad de sudo

          Opcionalmente, ahora también puedes añadir tu usuario al grupo de Docker, para que puedas usar Docker sin tener que escribir sudo a cada momento. Para ello, ejecuta estos comandos:

sudo groupadd docker
sudo usermod -aG docker $USER

           Cierre sesión e inicie sesión nuevamente para que los cambios tengan efecto. Si te preocupa la idea de ejecutar contenedores con privilegios de administrador, entonces deberías mirar como funciona esto con Podman.

 

 

En Resumen

          A partir de este momento, Docker funcionará de la misma manera, tal y como está acostumbrado, incluyendo docker-compose y todas las herramientas relacionadas con Docker. No olvides revisar la documentación oficial que puede siempre ayudarte en muchos casos en los que algo no esté del todo bien.

          El estado actual de Docker en Fedora 32 no es el ideal. Le falta pulir muchos detalles para que funcione adecuadamente y esto podría molestar a algunos, y hay temas abiertos en GitHib donde se discute todo ello. El soporte que falta tanto para CGroups como para NFTables es más técnico, pero puedes comprobar el progreso en su repositorio en GitHub.

          Este tutorial debería permitirte continuar trabajando como si nada hubiera pasado. Si esto no ha satisfecho tus necesidades, no olvides que todo puede debatirse con respeto en la caja de comentarios de este articulo.

No hay comentarios:

Publicar un comentario