Cómo instalar y configurar el motor Docker-CE/Moby en Fedora 32
- 2567
- 319
- Claudia Baca
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
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 dominiops - 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
- « Habilite Adobe Flash para Google Chrome en Ubuntu 20.04 fosa focal
- Cómo instalar MOD_SSL en RHEL 8 / CentOS 8 con HTTPD Apache Webserver »