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