Instalar Docker Engine en CentOS

Tiempo estimado de lectura: 10 minutos

Para empezar con Docker Engine en CentOS, asegúrate de que cumples los requisitos previos y luegoinstala Docker.

Requisitos previos

Requisitos del sistema operativo

Para instalar Docker Engine, se necesita una versión mantenida de CentOS 7 u 8.Las versiones archivadas no están soportadas ni probadas.

El repositorio centos-extras debe estar habilitado. Este repositorio está habilitado por defecto, pero si lo ha deshabilitado, debe volver a habilitarlo.

Se recomienda el controlador de almacenamiento overlay2.

Desinstalar versiones antiguas

Las versiones anteriores de Docker se llamaban docker o docker-engine. Si estos estáninstalados, desinstálelos, junto con las dependencias asociadas.

$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine

No pasa nada si yum informa de que ninguno de estos paquetes está instalado.

El contenido de /var/lib/docker/, incluyendo imágenes, contenedores, volúmenes y redes, se conserva. El paquete Docker Engine se llama ahora docker-ce.

Métodos de instalación

Puedes instalar Docker Engine de diferentes maneras, dependiendo de tus necesidades:

  • La mayoría de los usuarios configuran los repositorios de Docker e instalan desde ellos, para facilitar las tareas de instalación y actualización. Este es el enfoque recomendado.

  • Algunos usuarios descargan el paquete RPM y lo instalan manualmente y gestionan las actualizaciones de forma completamente manual. Esto es útil en situaciones tales como la instalación de Docker en sistemas con trampa de aire sin acceso a Internet.

  • En entornos de prueba y desarrollo, algunos usuarios optan por utilizar scripts de conveniencia automatizados para instalar Docker.

Instalar utilizando el repositorio

Antes de instalar el motor Docker por primera vez en una nueva máquina anfitriona, es necesario configurar el repositorio Docker. Después, puedes instalar y actualizar Dockerdesde el repositorio.

Configuración del repositorio

Instala el paquete yum-utils (que proporciona la utilidad yum-config-manager) y configura el repositorio estable.

$ sudo yum install -y yum-utils$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

Opcional: Habilitar los repositorios nocturnos o de prueba.

Estos repositorios están incluidos en el archivo docker.repo anterior pero están deshabilitadospor defecto. Puede habilitarlos junto con el repositorio estable. El siguiente comando habilita el repositorio nocturno.

$ sudo yum-config-manager --enable docker-ce-nightly

Para habilitar el canal de pruebas, ejecute el siguiente comando:

$ sudo yum-config-manager --enable docker-ce-test

Puedes desactivar el repositorio nocturno o de pruebas ejecutando el comandoyum-config-manager con la bandera --disable. Para volver a activarlo, utilice la bandera --enable. El siguiente comando desactiva el repositorio nocturno.

$ sudo yum-config-manager --disable docker-ce-nightly

Aprende sobre los canales nocturnos y de prueba.

Instalar Docker Engine

    Instalar la última versión de Docker Engine y containerd, o ir al siguiente paso para instalar una versión específica:

    $ sudo yum install docker-ce docker-ce-cli containerd.io

    Si se le pide que acepte la clave GPG, verifique que la huella digital coincide060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35, y si es así, acéptela.

    ¿Tienes varios repositorios de Docker?

    Si tienes varios repositorios de Docker habilitados, al instalar o actualizar sin especificar una versión en el comando yum install oyum update siempre se instala la versión más alta posible, que puede no ser la adecuada para tus necesidades de estabilidad.

    Docker está instalado pero no iniciado. El grupo docker se crea, pero no se añade ningún usuario al grupo.

  1. Para instalar una versión específica de Docker Engine, liste las versiones disponiblesen el repo, luego seleccione e instale:

    a. Liste y ordene las versiones disponibles en su repo. Este ejemplo ordena los resultados por número de versión, de mayor a menor, y está truncado:

    $ yum list docker-ce --showduplicates | sort -rdocker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stabledocker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stabledocker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stabledocker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable

    La lista devuelta depende de los repositorios que estén habilitados, y es específica para su versión de CentOS (indicada por el sufijo .el7 en este ejemplo).

    b. Instalar una versión específica por su nombre de paquete completo, que es el nombre del paquete (docker-ce) más la cadena de la versión (2ª columna) empezando por los primeros dos puntos (:), hasta el primer guion, separado por un guion (-). Por ejemplo, docker-ce-18.09.1.

    $ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

    Docker está instalado pero no iniciado. El grupo docker está creado, pero no se ha añadido ningún usuario al grupo.

  2. Iniciar Docker.
    $ sudo systemctl start docker
  3. Verifica que el motor Docker está instalado correctamente ejecutando la hello-worldimagen.

    $ sudo docker run hello-world

    Este comando descarga una imagen de prueba y la ejecuta en un contenedor. Cuando elcontenedor se ejecuta, imprime un mensaje informativo y sale.

    El motor de Docker está instalado y funcionando. Es necesario utilizar sudo para ejecutar Dockercommands. Continúe con la postinstalación de Linux para permitir a los usuarios con privilegios ejecutar comandos Docker y para otros pasos de configuración opcionales.

    Actualizar Docker Engine

    Para actualizar Docker Engine, siga las instrucciones de instalación, eligiendo la nueva versión que desea instalar.

    Instalar desde un paquete

    Si no puedes utilizar el repositorio de Docker para instalar Docker, puedes descargar el archivo.rpm de tu versión e instalarlo manualmente. Es necesario descargar un nuevo archivo cada vez que quiera actualizar el motor Docker.

    1. Vaya a https://download.docker.com/linux/centos/and elija su versión de CentOS. A continuación, navega hasta x86_64/stable/Packages/y descarga el archivo .rpm de la versión de Docker que quieras instalar.

      Nota: Para instalar un paquete nocturno o de prueba (pre-lanzamiento), cambia la palabra stable en la URL anterior por nightly o test.Conozca los canales nocturnos y de prueba.

    2. Instale el motor Docker, cambiando la ruta de abajo por la ruta donde descargóel paquete Docker.
      $ sudo yum install /path/to/package.rpm

      Docker está instalado pero no iniciado. El grupo docker está creado, pero no se añaden usuarios al grupo.

    3. Iniciar Docker.

      $ sudo systemctl start docker
    4. Verifica que el motor Docker está instalado correctamente ejecutando la hello-worldimagen.

      $ sudo docker run hello-world

      Este comando descarga una imagen de prueba y la ejecuta en un contenedor. Cuando elcontenedor se ejecuta, imprime un mensaje informativo y sale.

      El motor de Docker está instalado y funcionando. Necesita usar sudo para ejecutar los comandos de Docker.Continúe con los pasos de postinstalación para Linux para permitir a los usuarios con privilegios ejecutar los comandos de Docker y para otros pasos de configuración opcionales.

      Actualizar el motor Docker

      Para actualizar el motor Docker, descargue el archivo del paquete más nuevo y repita el procedimiento deinstalación, utilizando yum -y upgrade en lugar de yum -y install, y apuntando al nuevo archivo.

      Instalar utilizando el script de conveniencia

      Docker proporciona scripts de conveniencia en get.docker.comand test.docker.com para instalar versiones de borde y de prueba de Docker Engine – Community en entornos de desarrollo de forma rápida y no interactiva. El código fuente de los scripts se encuentra en el repositoriodocker-install.El uso de estos scripts no se recomienda para entornos de producción, y debe comprender los riesgos potenciales antes de utilizarlos:

      • Los scripts requieren root o sudo privilegios para ejecutarse. Por lo tanto, debe examinar y auditar cuidadosamente los scripts antes de ejecutarlos.
      • Los scripts intentan detectar su distribución y versión de Linux y configurar su sistema de gestión de paquetes por usted. Además, los scripts no le permiten personalizar ningún parámetro de instalación. Esto puede llevar a una configuración no soportada, ya sea desde el punto de vista de Docker o de las directrices y estándares de su propia organización.
      • Los scripts instalan todas las dependencias y recomendaciones del gestor de paquetes sin pedir confirmación. Esto puede instalar un gran número de paquetes, dependiendo de la configuración actual de su máquina anfitriona.
      • El script no proporciona opciones para especificar qué versión de Docker instalar, e instala la última versión que se libera en el canal «edge».
      • No utilice el script de conveniencia si Docker ya ha sido instalado en la máquina host utilizando otro mecanismo.
      • Este ejemplo utiliza el script en get.docker.com parainstalar la última versión de Docker Engine – Community en Linux. Para instalar la última versión de prueba, utilice test.docker.com en su lugar. En cada uno de los comandos siguientes, sustituya cada ocurrencia de get por test.

        Advertencia:

        Examine siempre los scripts descargados de Internet antes de ejecutarlos localmente.

        $ curl -fsSL https://get.docker.com -o get-docker.sh$ sudo sh get-docker.sh<...>

        Si quieres usar Docker como usuario no root, deberías considerar ahora añadir tu usuario al grupo «docker» con algo como:

        $ sudo usermod -aG docker <your-user>

        ¡Recuerda cerrar la sesión y volver a entrar para que esto tenga efecto!

        Advertencia:

        Añadir un usuario al grupo «docker» le otorga la capacidad de ejecutar contenedoreslo que puede ser utilizado para obtener privilegios de root en el host Docker. ConsulteDocker Daemon Attack Surfacepara obtener más información.

        Docker Engine – Community está instalado. Se inicia automáticamente en las distribuciones basadas en DEB. En las distribuciones basadas enRPM, es necesario iniciarlo manualmente usando el comando apropiadosystemctl o service. Como indica el mensaje, los usuarios que no son root no pueden ejecutar los comandos de Docker de forma predeterminada.

        Nota:

        Para instalar Docker sin privilegios de root, consulteEjecutar el demonio de Docker como usuario no root (modo Rootless).

        Actualizar Docker después de usar el script de conveniencia

        Si instaló Docker usando el script de conveniencia, debe actualizar Dockerusando su gestor de paquetes directamente. No hay ninguna ventaja en volver a ejecutar el script de conveniencia, y puede causar problemas si intenta volver a añadirrepositorios que ya se han añadido a la máquina anfitriona.

        Desinstalar el motor Docker

        1. Desinstalar el motor Docker, la CLI y los paquetes Containerd:
          $ sudo yum remove docker-ce docker-ce-cli containerd.io
        2. Las imágenes, los contenedores, los volúmenes o los archivos de configuración personalizados de su host no se eliminan automáticamente. Para eliminar todas las imágenes, contenedores y volúmenes:

          $ sudo rm -rf /var/lib/docker$ sudo rm -rf /var/lib/containerd

        Debe eliminar manualmente cualquier archivo de configuración editado.

        • Continúe con los pasos posteriores a la instalación de Linux.
        • Revisa los temas en Desarrollar con Docker para aprender a construir nuevas aplicaciones usando Docker.
      • Requisitos, apt, instalación, centos, rpm, instalar, desinstalar, actualizar, actualizar.