Cómo instalar Docker CE en Rhel 8 / Centos 8

Cómo instalar Docker CE en Rhel 8 / Centos 8

El último lanzamiento del Rhel 8 / Centos 8. Red Hat ha construido sus propias herramientas, construcción y podman, cuyo objetivo es ser compatible con las imágenes de Docker existentes y trabajar sin depender de un demonio, lo que permite la creación de contenedores como usuarios normales, sin la necesidad de permisos especiales (con algunas limitaciones: E.gramo. En el momento de la escritura, todavía no es posible asignar puertos de host al contenedor sin privilegios).

Sin embargo, todavía faltan algunas herramientas específicas: un equivalente de compuesto de acopolador, por ejemplo aún no existe. En este tutorial veremos cómo instalar y ejecutar el Docker CE original en RHEL8 utilizando el repositorio oficial de Docker para CentOS7.

En este tutorial aprenderás:

  • Cómo habilitar el repositorio de Docker-CE en Rhel 8 / Centos 8
  • Cómo instalar Docker y Docker-Compose en Rhel 8 / Centos 8


Docker instalado en Rhel 8 / Centos 8

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 RHEL 8 / CENTOS 8
Software Docker versión 18.09.2
Otro Permiso para ejecutar el comando con privilegios raíz.
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

Que es Docker?

Docker es un proyecto de código abierto que permite la creación y distribución de aplicaciones dentro contenedores, que son entornos estandarizados que se pueden replicar fácilmente, independientemente del sistema host. Mientras que en Red Hat Enterprise Linux 7 Docker fue oficialmente compatible con el nuevo lanzamiento de este sistema operativo de código abierto, ha sido reemplazado por una serie de otras herramientas desarrolladas por Red Hat: construcción y podman.

Sin embargo, mediante el uso de un repositorio externo, todavía es posible instalar Docker CE (edición comunitaria). En este tutorial veremos cómo instalar este repositorio; note, sin embargo, que originalmente estaba destinado a Centos 7 (un clon Rhel), y la versión comunitaria de Docker no tiene apoyo oficial para Red Hat Enterprise Linux. Debido a esto, existen problemas: los discutimos a continuación.

Agregar el repositorio externo

Dado que Docker no está disponible en RHEL 8 / CentOS 8, necesitamos agregar un repositorio externo para obtener el software. En este caso, utilizaremos el repositorio oficial de Docker Ce Centos: esta es, en el momento de escribir, la única forma de instalar Docker CE en Rhel 8 / Centos 8.



El DNF Config-Manager Utilidad Permítanos, entre las otras cosas, habilitar o deshabilitar fácilmente un repositorio en nuestra distribución. Por defecto, solo el appstream y base Los repositorios están habilitados en RHEL8; Necesitamos agregar y habilitar también el docker-ce repositorio. Todo lo que necesitamos hacer para lograr esta tarea es ejecutar el siguiente comando:

$ sudo dnf config-manager --add-repo = https: // descargar.estibador.com/Linux/Centos/Docker-CE.repositorio

Podemos verificar que el repositorio se haya habilitado, mirando la salida del siguiente comando:

$ sudo dnf repolista -v

El comando anterior devolverá información detallada sobre todos los repositorios habilitados. Esto es lo que debes ver en este punto:

Repo-id: Docker-CE-estable Repo-Nombre: Docker CE STABLE-X86_64 Repo-Revisión: 15499905809 Repo actualizado: lunes 11 de febrero de 2019 06:23:29 PM CET Repo-Pkgs: 30 Repo-tamaño: 618 M Repo -baseurl: https: // descargar.estibador.com/Linux/Centos/7/x86_64/Repo-expire estable: 172,800 segundos (s) (último: lunes 18 de febrero de 2019 10:23:54 AM CET) Repo-filename:/etc/yum.repositar.D/Docker-CE.Repo Repo-ID: RHEL-8-FOR-X86_64-APPSTREAM-RPMS Repo-Name: Red Hat Enterprise Linux 8 para x86_64-AppStream Beta (RPMS) Repo-Revision: 1542158694 Repo actualizado: miércoles 14 de noviembre de 2018 02:24: 54 AM CET Repo-PKGS: 4,594 Repo-tamaño: 4.9 g de repo-baseurl: https: // cdn.sombrero rojo.com/content/beta/rhel8/8/x86_64/appstream/os repo-expire: 86,400 segundos (s) (último: lun 18 de febrero de 2019 10:23:55 AM CET) Repo-Filename:/etc/yum.repositar.D/Redhat.Repo Repo-id: RHEL-8-FOR-X86_64-BASEOS-RPMS Repo-Name: Red Hat Enterprise Linux 8 para x86_64-Baseos beta (RPMS) Repo-Revisión: 1542158719 Repo actualizado: miércoles 14 de noviembre de 2018 02:25: 19 AM CET Repo-PKGS: 1,686 Repo-tamaño: 925 m Repo-Baseurl: https: // CDN.sombrero rojo.com/content/beta/rhel8/8/x86_64/baseos/os repose-expire: 86,400 segundos (s) (último: lun 18 de febrero de 2019 10:23:56 AM CET) Repo-Filename:/etc/yum.repositar.D/Redhat.Repo Total Packages: 6,310 

Instalación de Docker-CE

El Docker-CE-Stable El repositorio ahora está habilitado en nuestro sistema. El repositorio contiene varias versiones de la docker-ce paquete, para mostrarlos todos, podemos ejecutar:

$ DNF LIST Docker-CE --ShowDuplate | Sort -r Docker -CE.x86_64 3:19.03.2-3.El7 Docker-CE-Stable Docker-CE.x86_64 3:19.03.1-3.El7 Docker-CE-Stable Docker-CE.x86_64 3:19.03.0-3.El7 Docker-CE-Stable Docker-CE.x86_64 3:18.09.9-3.El7 Docker-CE-Stable Docker-CE.x86_64 3:18.09.8-3.El7 Docker-CE-Stable Docker-CE.x86_64 3:18.09.7-3.El7 Docker-CE-Stable Docker-CE.x86_64 3:18.09.6-3.El7 Docker-CE-Stable Docker-CE.x86_64 3:18.09.5-3.El7 Docker-CE-Stable Docker-CE.x86_64 3:18.09.4-3.El7 Docker-CE-Stable Docker-CE.x86_64 3:18.09.3-3.El7 Docker-CE-Stable Docker-CE.x86_64 3:18.09.2-3.El7 Docker-CE-Stable Docker-CE.x86_64 3:18.09.1-3.El7 Docker-CE-Stable Docker-CE.x86_64 3:18.09.0-3.El7 Docker-CE-Stable Docker-CE.x86_64 18.06.3.CE-3.El7 Docker-CE-Stable Docker-CE.x86_64 18.06.2.CE-3.El7 Docker-CE-Stable Docker-CE.x86_64 18.06.1.CE-3.El7 Docker-CE-Stable Docker-CE.x86_64 18.06.0.CE-3.El7 Docker-CE-Stable Docker-CE.x86_64 18.03.1.CE-1.El7.Centos Docker-CE-Stable Docker-CE.x86_64 18.03.0.CE-1.El7.Centos Docker-CE-Stable Docker-CE.x86_64 17.12.1.CE-1.El7.Centos Docker-CE-Stable Docker-CE.x86_64 17.12.0.CE-1.El7.Centos Docker-CE-Stable Docker-CE.x86_64 17.09.1.CE-1.El7.Centos Docker-CE-Stable Docker-CE.x86_64 17.09.0.CE-1.El7.Centos Docker-CE-Stable Docker-CE.x86_64 17.06.2.CE-1.El7.Centos Docker-CE-Stable Docker-CE.x86_64 17.06.1.CE-1.El7.Centos Docker-CE-Stable Docker-CE.x86_64 17.06.0.CE-1.El7.Centos Docker-CE-Stable Docker-CE.x86_64 17.03.3.CE-1.El7 Docker-CE-Stable Docker-CE.x86_64 17.03.2.CE-1.El7.Centos Docker-CE-Stable Docker-CE.x86_64 17.03.1.CE-1.El7.Centos Docker-CE-Stable Docker-CE.x86_64 17.03.0.CE-1.El7.Centos Docker-CE-Stable 

Que versión instalar? Bueno, Red Hat parece haber bloqueado de alguna manera la instalación de contenedor.IO > 1.2.0-3.El7, que es una dependencia de docker-ce. Por esto, simplemente ejecutando el sudo dnf install Docker-CE comando, no funcionará. Como veremos en un minuto, todavía es posible solucionar este problema; una vez docker-ce está instalado, sin embargo, otro problema se hace evidente: mientras cortafuegos, El System Firewall Manager está habilitado, Resolución de DNS Los contenedores de Docker Inside no funcionan.

Este es, por supuesto, un problema crítico. Sin embargo, si aún desea continuar con la instalación, aquí están los posibles métodos que se pueden utilizar para evitar los problemas de dependencias:

  • Instalar una versión específica de docker-ce que requiere una versión instalable del contenedor.IO paquete;
  • Forzar la instalación que proporciona el --noble opción
  • Instale lo último disponible contenedor.IO RPM manualmente;

Instale una versión específica de Docker-CE

En el momento de escribir las versiones de docker-ce que se instalan sin problemas son:

  • Docker-CE-3: 18.09.1-3.El7
  • Docker-CE-18.06.3.CE-3.El7;
  • Docker-CE-17.12.1.CE-1.El7.cento

Para instalar una versión específica, todo lo que tenemos que hacer es proporcionar el nombre del paquete completamente calificado, por ejemplo:

$ sudo dnf install Docker-CE-3: 18.09.1-3.El7

Forzar la instalación de Docker -CE con la opción -nobest

Normalmente, al instalar un paquete, el mejor candidato disponible se selecciona de un repositorio. En este caso, por ejemplo, la instalación de la última versión de docker-ce se intenta (y falla). Mediante el uso del --noble Opción, podemos cambiar este comportamiento para que la primera versión de docker-ce con dependencias satisfactables se selecciona como "alojamiento", en este caso 3:18.09.1-3.El7.

$ sudo dnf instalación-dependencias de Docker-CE resueltas. Problema: paquete Docker-CE-3: 19.03.2-3.El7.x86_64 Requiere contenedor.io> = 1.2.2-3, pero ninguno de los proveedores se puede instalar, no puede instalar el mejor candidato para el trabajo - Containerd de paquete.IO-1.2.2-3.3.El7.Se excluye x86_64 - Containerd de paquete.IO-1.2.2-3.El7.Se excluye x86_64 - Containerd de paquete.IO-1.2.4-3.1.El7.Se excluye x86_64 - Containerd de paquete.IO-1.2.5-3.1.El7.Se excluye x86_64 - Containerd de paquete.IO-1.2.6-3.3.El7.x86_64 está excluido ================================================= ==================================================== ==================================================== ==== Package Arch Version Size =========================================== ==================================================== ==================================================== ========== Instalación: Docker-CE x86_64 3:18.09.1-3.El7 Docker-CE-Stable 19 M Instalación de dependencias: Containerd.io x86_64 1.2.0-3.El7 Docker-CE-Estable 22 M Docker-CE-CLI X86_64 1:19.03.2-3.El7 Docker-CE-Stable 39 M Contenedor-Selinux Noarch 2: 2.94-1.git1e99f1d.Módulo+EL8.0.0+4017+BBBA319F RHEL-8-FOR-X86_64-APPSTREAM-RPMS 43 K TAR X86_64 2: 1.30-4.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 838 K libcgroup x86_64 0.41-19.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 70 K PYTHON3-POLICORILOS NOARCH 2.8-16.1.El8 RHEL-8-FOR-X86_64-BASEOS-RPMS 2.2 m python3-libsemanage x86_64 2.8-5.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 127 K PYTHON3-SETOOLS X86_64 4.2.0-2.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 598 K Checkpolicy x86_64 2.8-2.El8 RHEL-8-FOR-X86_64-BASEOS-RPMS 338 K PYTHON3-ADIT X86_64 3.0-0.10.20180831GIT0047A6C.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 85 K Política Coreutils-Python-Utils Noarch 2.8-16.1.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 228 K omitiendo paquetes con dependencias rotas: Docker-CE x86_64 3:19.03.2-3.El7 Docker-CE-Stable Resumen de transacción de 24 m ========================================== ==================================================== ==================================================== =========== Instale 12 paquetes omitir 1 paquete Total de descarga Tamaño: 85 m Tamaño instalado: 351 m está bien [y/n]:

Instale el último contenedor disponible.paquete IO manualmente

Si necesitamos instalar la última versión de docker-ce, Podemos instalar la versión requerida de contenedor.IO manualmente, corriendo:

$ sudo dnf install https: // descargar.estibador.com/linux/centos/7/x86_64/stable/paquetes/contenedord.IO-1.2.6-3.3.El7.x86_64.rpm

Después de instalar el paquete, simplemente podemos instalar lo último docker-ce:

$ sudo DNF Install Docker-CE Dependencias resueltas. ==================================================== ==================================================== ==================================================== = Tamaño del repositorio de la versión de arco de paquete ============================================== ==================================================== ==================================================== ======= Instalación: Docker-CE X86_64 3:19.03.2-3.El7 Docker-CE-Stable 24 M Instalación de dependencias: Docker-CE-CLI X86_64 1:19.03.2-3.El7 Docker-CE-Stable 39 M Tar x86_64 2: 1.30-4.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 838 K libcgroup x86_64 0.41-19.EL8 RHEL-8-FOR-X86_64-BASEOS-RPMS 70 K Resumen de transacción ==================================== ==================================================== ==================================================== ================= Instalar 4 paquetes Total de descarga Tamaño: 65 m Tamaño instalado: 275 m está bien [y/n]: 

Esta opción es menos conveniente desde el contenedor.IO El paquete no está instalado como una dependencia de docker-ce, Por lo tanto, no se eliminará automáticamente cuando este último esté desinstalado del sistema.

Cualquiera que sea el método que usemos para instalar docker-ce, Como se dijo antes, para hacer Resolución de DNS Trabajar dentro de los contenedores Docker, debemos deshabilitar Firewalld (también puede ser necesario un reinicio del sistema):

$ sudo systemctl deshabilitar firewalld


Iniciar y habilitar el Docker Daemon

Una vez docker-ce está instalado, debemos iniciar y habilitar el Docker Daemon, para que también se inicie automáticamente en el arranque. El comando que necesitamos ejecutar es el siguiente:

$ sudo systemctl Enable - -Now Docker

En este punto, podemos confirmar que el demonio está activo ejecutando:

$ systemctl is-active Docker activo 

Del mismo modo, podemos verificar que esté habilitado en el arranque, ejecutando:

$ SystemCTL IS-habilitado Docker habilitado 

Instalación de Docker-Compose

Docker Compose es un paquete muy útil que nos permite administrar aplicaciones de múltiples contenedores, como, por ejemplo, aquellas basadas en la pila de lámparas, donde cada parte del entorno (PHP, Apache, MariadB) proporciona un contenedor dedicado (si está interesado En el tema, eche un vistazo a nuestro tutorial sobre la creación de una pila de lámparas basada en Docker). El paquete no está disponible en RHEL8, ni existe un equivalente para ser utilizado con las herramientas RHEL. Sin embargo, es posible instalarlo de muchas maneras: solo sigue leyendo y decide qué se adapta mejor.

Instalación global

La forma en que debemos instalar compuesto de acopolador varía según si queremos instalarlo a nivel mundial o solo para un solo usuario. En el momento de la escritura, la única forma de instalarlo a nivel mundial es descargar el binario desde la página GitHub del proyecto:

$ curl -l "https: // github.com/docker/compose/comunes/descargar/1.23.2/Docker-Compose-$ (uname -s)-$ (uname -m) "-o Docker-Compose

Una vez que se descarga el binario, lo movemos a /usr/local/bin y lo hacemos ejecutable:

$ sudo MV Docker-Compose/usr/local/bin && sudo chmod +x/usr/local/bin/docker-composo

El /usr/local La jerarquía no se elige al azar. Esta estructura de directorio está hecha para ser utilizada para los archivos instalados por el administrador local manualmente (para el software compilado desde la fuente, por ejemplo), para garantizar la separación del software instalado con el sistema de paquetes del sistema.

Aunque es posible que un usuario normal ejecute comandos relacionados con Docker si es parte del estibador Grupo (el grupo se crea automáticamente cuando instalamos Docker-CE), de forma predeterminada, deben ejecutarse con privilegios raíz por razones de seguridad. Cuando necesitamos hacer este último, desde el /usr/local/bin El directorio no está en el usuario de la raíz CAMINO, necesitamos llamar al binario especificando su ubicación o agregar /usr/local/bin hacia CAMINO sí mismo. La primera opción es la que recomiendo en este caso.

Instalación por usuario

Si nuestro usuario es parte del estibador grupo y, por lo tanto, se le permite ejecutar comandos de Docker, y desde que compuesto de acopolador está disponible como un paquete Python, también podemos instalarlo usando pepita, El Administrador de paquetes de Python. Primero, asegúrese de que PIP esté instalado:

$ sudo dnf instalación python3-pip

Para obtener Docker-Compose, ejecutamos:

$ PIP3.6 Instalar Docker-Compose-User


Tenga en cuenta que incluso si sería posible ejecutar PIP como root para instalar un paquete a nivel mundial, esto no se recomienda y se desanime altamente.

Docker de pruebas

Instalamos Docker y Docker-Compose, ahora para verificar que todo funcione como se esperaba, podemos intentar construir una imagen y ejecutar un contenedor: en este caso usaremos el oficial httpd uno. Todo lo que tenemos que hacer es iniciar el siguiente comando:

Sudo Docker Run - -Rm - -Name = LinuxConfig -Test -P 80:80 Httpd

Desde el httpd La imagen no existe localmente, se obtendrá automáticamente y se construirá. Finalmente, un contenedor basado en él se lanzará en primer plano (se eliminará automáticamente cuando se detenga). Deberíamos poder ver el Funciona! Mensaje cuando llegamos a nuestra máquina IP a través del navegador.

Conclusiones

Red Hat Enterprise Linux 8 no es compatible con Docker: en esta distribución ha sido reemplazado por herramientas Red Hat Own construcción y podman, que son compatibles con Docker pero no necesitan una arquitectura de servidor/cliente para ejecutar. El uso de herramientas nativas, siempre que sea posible, siempre es la forma recomendada, pero por una razón u otra es posible que desee instalar el Docker original. En este tutorial, vimos cómo es posible instalar Docker CE en RHEL8, utilizando el repositorio oficial de Docker para CentOS7, que es un clon 100% compatible.

Esta no es una solución ideal, y como vimos, en este momento, se necesitan algunas soluciones para que Docker funcione en Rhel8. Si surgen algunos problemas nuevos, o se encuentran mejores soluciones a los problemas mencionados anteriormente, este artículo se actualizará en consecuencia. Manténganse al tanto.

Tutoriales de Linux relacionados:

  • Cómo crear una pila de lámparas basada en Docker usando Docker en ..
  • Cosas para instalar en Ubuntu 20.04
  • Instalar Docker en Almalinux
  • Cómo conectarse al contenedor Docker a través de SSH
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cómo instalar Kubernetes en todas las distribuciones de Linux
  • Cómo instalar Debian en un contenedor de Luks existente
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Cómo instalar y configurar el motor Docker-CE/Moby en Fedora ..
  • Mastering Bash Script Loops