Cómo instalar y configurar el motor Docker-CE/Moby en Fedora 32

Cómo instalar y configurar el motor Docker-CE/Moby en Fedora 32

Incluso si Red Hat se ha desarrollado podman y construcción, Sus propias herramientas para trabajar con contenedores, que vienen con algunas ventajas importantes como una arquitectura sin demora, es posible que desee continuar utilizando el software Docker original en Fedora. En este tutorial exploraremos las opciones que tenemos sobre la última versión de la distribución para hacerlo, y veremos cómo aplicar las soluciones necesarias para que Docker funcione correctamente.

En este tutorial aprenderás:

  • Cómo instalar Moby-Engine
  • Cómo instalar Docker-CE
  • Cómo aplicar las soluciones necesarias para hacer que Docker funcione correctamente en Fedora 32


Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Fedora 32
Software No se necesita un software específico para seguir este tutorial
Otro Permisos de raíz para realizar tareas administrativas
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Moby-Engine vs Docker-CE

Hay dos formas en que podemos obtener Docker en Fedora 32: podemos instalar el paquete "Docker" de los repositorios oficiales de distribución, o agregar el docker-ce uno e instalar los paquetes necesarios desde allí. Si elegimos la primera opción, la motor El paquete se instalará en nuestra distribución en lugar de la estibador liberar. Si elegimos el segundo, obtendremos el último lanzamiento de la edición comunitaria del "Oficial" motor de acopolador.

Cuál es la diferencia entre los dos? "Moby" es un proyecto de código abierto "ascendente" creado por Docker para distribuir y dividir fácilmente su base de código en múltiples componentes. El software que obtenemos instalando motor directamente del repositorio oficial de Fedora está empaquetado por la distribución en la base de este proyecto de la rama, mientras que docker-ce (y también docker-ee - Enterprise Edition) es el producto creado por el estibador Proyecto en la misma base. Ambos se lanzan bajo una licencia de código abierto y están disponibles gratuitamente.

En este tutorial veremos cómo realizar la instalación de docker-ce o motor, Y también veremos cómo aplicar las correcciones necesarias para hacer que Docker funcione correctamente en la última versión de Fedora.

Instalación de Moby-Engine desde los repositorios oficiales

Instalación motor Es la forma más fácil y rápida de trabajar con contenedores utilizando la arquitectura de servicio de cliente Docker en la distribución. Todo lo que tenemos que hacer es usar DNF, el administrador de paquetes de Fedora y ejecuta el siguiente comando:

$ sudo DNF Instalar Docker Últimos metadatos Verificación de vencimiento: 1:38:14 Hace el sol 03 de mayo 2020 02:22:22 PM CEST. Dependencias resueltas. ==================================================== =============================== Package Arch Version Size ================ ==================================================== =============== Instalación: Moby-Engine X86_64 19.03.8-1.ceñudo.gitafacb8b.FC32 Fedora 51 M Instalación de dependencias: Container-Selinux Noarch 2: 2.132.0-1.FC32 Actualizaciones 48 K Contenerd x86_64 1.3.3-1.FC32 Actualizaciones 32 M Libbsd x86_64 0.10.0-2.FC32 Fedora 106 K libnet x86_64 1.1.6-19.FC32 Fedora 64 K RUNC X86_64 2: 1.0.0-144.enchufe.GITE6555CC.FC32 Fedora 2.7 m Instalación de dependencias débiles: CRIU X86_64 3.13-5.FC32 Fedora 492 K Resumen de transacciones =============================================== ===================================== Instalar 7 paquetes Tamaño total de descarga: 86 m Tamaño instalado: 314 m ¿Está bien? [Y/n]: 


Como puede ver, incluso si especificamos estibador como paquete, el motor versión 19.03.8-1.ceñudo.gitafacb8b.FC32 realmente se instalará, junto con sus dependencias.

Instalación de Docker-CE

Docker Community Edition (CE) es la versión Docker "oficial", que, como dijimos antes, se basa en el proyecto Moby. Instalar en Fedora 32 requiere más pasos. Si previamente instaló la versión de Docker disponible desde los repositorios de Fedora (Moby-Engine), asegúrese de desinstalarla ejecutando el siguiente comando:

$ sudo DNF Autoremove Docker 

Si previamente construyó algunas imágenes o creó contenedores o volúmenes, no se preocupe: el testamento conservado.

Una vez que estemos seguros de que los paquetes instalados previamente se eliminan de nuestro sistema, podemos agregar el docker-ce repositorio de nuestras fuentes de software de distribución, para que podamos mantenernos al día con futuras versiones. Lo primero que tenemos que hacer es descargar el docker-ce.repositorio archivo:

$ curl -o https: // descargar.estibador.com/Linux/Fedora/Docker-CE.repositorio 

Si abrimos el archivo con nuestro editor de texto favorito, podemos ver que la sección en relación con Docker-CE-Stable está marcado como habilitado:

[Docker-Ce-Stable] Name = Docker CE Stable-$ Basearch baseUrl = https: // Descargar.estibador.com/linux/fedora/$ lanzamiento/$ basearch/stable habilitado = 1 gpgcheck = 1 gpgkey = https: // descargar.estibador.com/Linux/Fedora/GPG 

Cuando dnf analiza el .repositorio archivo, el $ Releasever La variable se amplía, como su nombre indica, a la versión de lanzamiento de distribución, en este caso 32. Dado que en el momento de la escritura no hay un repositorio de Docker-CE explícitamente dedicado a Fedora 32, tenemos que sustituir esta variable con un valor estático, 31, el lanzamiento anterior de Fedora. Podemos realizar fácilmente el cambio usando el sed dominio:

# Asegúrese de usar citas individuales! $ Sed -i 'S/$ lanzamiento/31/g' Docker -CE.repositorio 

Con el comando anterior sustituimos cada ocurrencia de $ Releasever en el archivo con 31. Para que el comando funcione correctamente, el patrón de sustitución debe estar encerrado en citas individuales como lo hicimos anteriormente (o el ps El personaje debe ser escapado).

Como puede notar, solo el estable La rama del repositorio está habilitada de forma predeterminada (habilitado = 1). Le sugiero que lo deje de esta manera, a menos que tenga algún requisito específico.

Para hacer que DNF use el repositorio Docker-CE, debemos mover el .repositorio archivo al /etc/yum.repositar.d directorio:

$ sudo MV Docker-CE.Repo /etc /yum.repositar.d/ 

En este punto, podemos emitir el siguiente comando para instalar los paquetes Docker-CE que necesitamos:

$ sudo dnf instalación Docker-CE Docker-CE-Cli Containerd.IO Docker CE Stable - x86_64 17 kb/s | 8.9 KB 00:00 Dependencias resueltas. ==================================================== ==================================================== ============================== Package Architecture Version Size ================ ==================================================== ==================================================== =============== Instalación: Containerd.io x86_64 1.2.13-3.1.FC31 Docker-CE-Stable 23 M Docker-CE X86_64 3:19.03.8-3.FC31 Docker-CE-Stable 23 M Docker-CE-CLI X86_64 1:19.03.8-3.FC31 Docker-CE-Stable 39 M Instalación de dependencias: Container-Selinux Noarch 2: 2.132.0-1.FC32 actualizaciones 48 k libcgroup x86_64 0.42.2-1.FC32 Fedora 68 K Resumen de transacciones ============================================== ==================================================== ===================================== Instalar 5 paquetes Tamaño total de descarga: 85 m Tamaño instalado: 363 m ¿Está bien? [Y/n]: 

Confirme la instalación para continuar. También se le solicitará que acepte la tecla GPG de repositorio recién instalada.

Comienza el Docker Daemon

No importa si instalamos docker-ce del repositorio dedicado o el motor, Una vez que se instalan los paquetes, para trabajar realmente con contenedores necesitamos iniciar el estibador Daemon, y opcionalmente, así que se inicia automáticamente en el arranque. Para realizar ambas operaciones podemos usar el systemctl comando y ejecutar:

$ sudo systemctl Enable - -Now Docker 

En este punto tenemos Docker-Ce o Moby-Engine instalados en nuestro sistema, y ​​el Daemon Running. Sin embargo, hay algunos ajustes que debemos realizar para que Docker trabaje correctamente en nuestra distribución.

Habilitar la compatibilidad hacia atrás para CGROUPS

Desde Fedora 31, la distribución patrocinada por Red Hat ha cambiado a CGROUP V2 (Grupos de control) de forma predeterminada. CGROUP es un mecanismo incluido en el núcleo de Linux, utilizado para organizar procesos jerárquicamente y distribuir recursos en consecuencia. Docker aún no es compatible con la versión 2 de cgroups, por lo tanto debemos deshabilitarlo. Para hacerlo, debemos pasar el system.unificado_cgroup_hierarchy = 0 Parámetro al núcleo en el arranque. Con privilegios administrativos abre el /etc/default/grub archivo. Debería tener un contenido similar a este:

Grub_timeout = 5 grub_distributor = "$ (Sed 's, lanzamiento .*$ ,, g ' /etc /system-release) "grub_default = guardado grub_disable_submenu = true grub_terminal_output =" console "grub_cmdline_linux =" rhgb quiet "grub_disable_RECovery =" true "grub_enable_blscfg = verdadero verdadero 

En el Grub_cmdline_linux Línea, solo necesitamos agregar el parámetro que mencionamos anteriormente, para que se vea de esta manera:

Grub_cmdline_linux = "RHGB SISTEMD.unificado_cgroup_hierarchy = 0 " 

Una vez hecho esto, guarde el archivo modificado y reconstruya la configuración de grub:

$ sudo grub2 -mkconfig -o/boot/grub2/grub.CFG 

Para que los cambios sean efectivos, necesitamos reiniciar la máquina.



Arreglar DNS no funciona dentro de Docker

Intentemos ejecutar un contenedor muy simple basado en el oficial ocupación imagen. Lo usamos para ejecutar un muy simple silbido mandar www.Google.comunicarse. Este es el resultado:

Sudo Docker Run - -RM -it BusyBox Ping -C 3 www.Google.com ping: mala dirección 'www.Google.com ' 

Como puede ver se genera un error. El silbido El comando se queja de www.Google.com es una mala dirección, pero esto realmente sucede porque la resolución DNS no funciona dentro del contenedor. Por que esto pasa? Cuando Docker se ejecuta, debe realizar algunos ajustes de firewall y usar IP estafadores. Este comportamiento está bloqueado por Firewalld, el administrador de firewall predeterminado instalado en Fedora. La forma más fácil de resolver el problema es agregar explícitamente el docker0 interfaz al de confianza zona de firewall. Podemos hacerlo a través del firewall-cmd utilidad:

$ sudo firewall-cmd --Permanent --zone = Trusted --add-interface = Docker0 && sudo firewall-cmd--Reload 

En este punto, si volvemos a intentar el silbido Comando a través del contenedor basado en BusyBox, debería funcionar correctamente:

$ sudo Docker Run - -Rm -it BusyBox Ping -C 3 www.Google.com ping www.Google.com (216.58.198.36): 56 bytes de datos 64 bytes de 216.58.198.36: SEQ = 0 TTL = 51 Tiempo = 31.559 ms 64 bytes de 216.58.198.36: SEQ = 1 TTL = 51 Tiempo = 30.417 ms 64 bytes de 216.58.198.36: SEQ = 2 TTL = 51 Tiempo = 30.154 MS --- www.Google.Estadísticas de comunicación --- 3 paquetes transmitidos, 3 paquetes recibidos, 0% de pérdida de paquetes ida y vuelta min/avg/max = 30.154/30.710/31.559 ms 

Conclusiones

En este tutorial aprendimos la diferencia entre motor y docker-ce Y aprendimos a instalarlos en Fedora 32. También vimos cómo aplicar las dos correcciones necesarias para ejecutar Docker correctamente en la distribución. Después de leer este artículo, esperamos tener una configuración de trabajo.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Instalar Docker en Almalinux
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas para instalar en Ubuntu 22.04
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Mastering Bash Script Loops
  • Cómo instalar Kubernetes en todas las distribuciones de Linux
  • Ubuntu 20.04 Guía
  • Introducción a los motores de almacenamiento MySQL