Instalar Docker

Ubuntu

Requisitos

Requisitos del sistema operativo

Para instalar Docker Engine, se necesita la versión de 64 bits de una de estas versiones de Ubuntu:

  • Ubuntu Kinetic 22.10

  • Ubuntu Jammy 22.04 (LTS)

  • Ubuntu Focal 20.04 (LTS)

  • Ubuntu Bionic 18.04 (LTS)

Docker Engine es compatible con x86_64 (or amd64), armhf, arm64 y s390x arquitecturas.

Desinstalar versiones antiguas

Las versiones anteriores de Docker tenían los nombres de docker, docker.ioo docker-engine. Se recomienda desinstalar cualquier versión anterior antes de intentar instalar una nueva versión:

$ sudo apt-get remove docker docker-engine docker.io containerd runc

Está bien si apt-getinforma que ninguno de estos paquetes está instalado.

Las imágenes, los contenedores, los volúmenes y las redes almacenados /var/lib/docker/no se eliminan automáticamente cuando desinstala Docker. Si se desea iniciar con una instalación limpia y se prefiere la eliminación de los datos existentes, se recomienda revisar la sección de desinstalación de Docker Engine .

Métodos de instalación

Se puede instalar Docker Engine de diversas maneras, dependiendo de las necesidades particulares del usuario:

  • Docker Engine viene incluido con Docker Desktop para Linux . Esta es la forma más fácil y rápida de empezar.

  • También se puede configurar e instalar Docker Engine desde el repositorio de Dockerapt.

  • La instalación debe realizarse de manera manual, y también es necesario administrar las actualizaciones de forma manual.

  • Uso de scripts de conveniencia. Solo recomendado para entornos de prueba y desarrollo.

Instalar usando el repositorio

Antes de instalar Docker Engine por primera vez en una nueva máquina host, es necesario configurar el repositorio de Docker. Posteriormente, se tiene la opción de instalar y actualizar Docker directamente desde el repositorio correspondiente.

Configurar el repositorio

  1. Actualizar el aptíndice de paquetes e instalar paquetes para permitir aptel uso de un repositorio a través de HTTPS:

    $ sudo apt-get update
    
    $ sudo apt-get install \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
  2. Agregar la clave GPG oficial de Docker:

    $ sudo mkdir -m 0755 -p /etc/apt/keyrings
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  3. Usar el siguiente comando para configurar el repositorio:

    $ echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Instalar Docker Engine

  1. Actualizar el aptíndice del paquete:

    $ sudo apt-get update

    ¿Se recibe un error de GPG cuando se ejecuta apt-get update?

    El umask predeterminado puede estar configurado incorrectamente, lo que impide la detección del archivo de clave pública del repositorio. Se sugiere intentar otorgar permisos de lectura al archivo de clave pública de Docker antes de actualizar el índice del paquete:

     $ sudo chmod a+r /etc/apt/keyrings/docker.gpg
     $ sudo apt-get update
  2. Instalar Docker Engine, containerd y Docker Compose.

    1. Para instalar la última versión, ejecutar:

       $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    2. Para instalar una versión específica de Docker Engine, se deberá iniciar por enumerar las versiones disponibles en el repositorio:

      # List the available versions:
      $ apt-cache madison docker-ce | awk '{ print $3 }'
      
      5:20.10.16~3-0~ubuntu-jammy
      5:20.10.15~3-0~ubuntu-jammy
      5:20.10.14~3-0~ubuntu-jammy
      5:20.10.13~3-0~ubuntu-jammy

      Seleccionar la versión deseada e instalar:

      $ VERSION_STRING=5:20.10.13~3-0~ubuntu-jammy
      $ sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
  3. Verificar que la instalación de Docker Engine sea exitosa ejecutando la hello-worldimagen:

    $ sudo docker run hello-world

    Este comando descarga una imagen de prueba y la ejecuta en un contenedor. Cuando se ejecuta el contenedor, imprime un mensaje de confirmación y sale.

Ahora se ha instalado e iniciado con éxito Docker Engine.

El grupo de usuarios dedockerexiste, pero no contiene usuarios, por lo que se debe usar sudo para ejecutar los comandos de Docker. Continuar con la instalación posterior de Linux para permitir que los usuarios sin privilegios ejecuten los comandos de Docker y para otros pasos de configuración opcionales.

Actualizar Docker Engine

Para llevar a cabo la actualización de Docker Engine, se deben seguir las instrucciones de instalación y elegir la nueva versión que se desea instalar.

Instalar desde un paquete

Si no se puede usar aptel repositorio de Docker para instalar Docker Engine, se puede descargar el debarchivo para su versión e instalarlo manualmente. Es necesario descargar un nuevo archivo cada vez que se desee actualizar Docker Engine.

  1. Seleccionar la versión de Ubuntu en la lista.

  2. Vaya a pool/stable/y seleccione la arquitectura aplicable ( amd64, armhf, arm64o s390x).

  3. Descargar los siguientes debarchivos para los paquetes Docker Engine, CLI, containerd y Docker Compose:

    • containerd.io_<version>_<arch>.deb

    • docker-ce_<version>_<arch>.deb

    • docker-ce-cli_<version>_<arch>.deb

    • docker-buildx-plugin_<version>_<arch>.deb

    • docker-compose-plugin_<version>_<arch>.deb

  4. Instalar los .debpaquetes. Actualizar las rutas en el siguiente ejemplo a donde descargó los paquetes de Docker.

    $ sudo dpkg -i ./containerd.io_<version>_<arch>.deb \
      ./docker-ce_<version>_<arch>.deb \
      ./docker-ce-cli_<version>_<arch>.deb \
      ./docker-buildx-plugin_<version>_<arch>.deb \
      ./docker-compose-plugin_<version>_<arch>.deb

    El demonio Docker se inicia automáticamente.

  5. Verificar que la instalación de Docker Engine sea exitosa ejecutando la hello-worldimagen:

    $ sudo service docker start
    $ sudo docker run hello-world

    Este comando descarga una imagen de prueba y la ejecuta en un contenedor. Cuando se ejecuta el contenedor, imprime un mensaje de confirmación y sale.

Ahora se ha instalado e iniciado con éxito Docker Engine.

El dockergrupo de usuarios existe, pero no contiene usuarios, por lo que debe usarlo sudo para ejecutar los comandos de Docker. Continúe con la instalación posterior de Linux para permitir que los usuarios sin privilegios ejecuten los comandos de Docker y para otros pasos de configuración opcionales.

Actualizar Docker Engine

Para actualizar Docker Engine, es necesario descargar el archivo del paquete más reciente y repitir el procedimiento de instalación, apuntando al nuevo archivo.

Instalar usando el script de conveniencia

Docker proporciona un script de conveniencia en https://get.docker.com/ para instalar Docker en entornos de desarrollo de forma no interactiva.

La secuencia de comandos de conveniencia no se recomienda para entornos de producción, pero es útil para crear una secuencia de comandos de aprovisionamiento adaptada a sus necesidades. Consulte también los pasos de instalación mediante el repositorio para obtener información sobre los pasos de instalación para instalar mediante el repositorio de paquetes. El código fuente del script es de código abierto y se puede encontrar en el docker-installrepositorio de GitHub .

Tip: preview script steps before running

You can run the script with the --dry-run option to learn what steps the script will run when invoked:

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh ./get-docker.sh --dry-run

Este ejemplo descarga el script de https://get.docker.com/ y lo ejecuta para instalar la última versión estable de Docker en Linux:

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
<...>

Ahora se ha instalado e iniciado con éxito Docker Engine.

El docker servicio se inicia automáticamente en las distribuciones basadas en Debian. En RPMdistribuciones basadas, como CentOS, Fedora, RHEL o SLES, debe iniciarlo manualmente usando el comando systemctlo apropiado service. Como indica el mensaje, los usuarios que no son root no pueden ejecutar los comandos de Docker de forma predeterminada.

¿Usar Docker como un usuario sin privilegios o instalarlo en modo sin raíz?

El script de instalación requiere rootprivilegios sudopara instalar y usar Docker. Si se desea otorgar acceso a Docker a usuarios que no sean root, se deben seguir los pasos posteriores a la instalación para Linux. También es posible instalar Docker sinrootprivilegios o configurado para ejecutarse en modo sin raíz. Para obtener instrucciones sobre cómo ejecutar Docker en modo sin raíz, se sugiere consultar ejecutar el demonio de Docker como usuario no raíz (modo sin raíz) .

Instalar versiones preliminares

Docker también proporciona un script de conveniencia en https://test.docker.com/ para instalar versiones preliminares de Docker en Linux. Este script es igual al script en get.docker.com, pero configura su administrador de paquetes para usar el canal de prueba del repositorio de paquetes de Docker. El canal de prueba incluye versiones estables y preliminares (versiones beta, candidatas a versión) de Docker. Se sugiere utilizar este script para obtener acceso anticipado a las nuevas versiones y evaluarlas en un entorno de prueba antes de que se publiquen como estables.

Para instalar la última versión de Docker en Linux desde el canal de prueba, ejecutar:

$ curl -fsSL https://test.docker.com -o test-docker.sh
$ sudo sh test-docker.sh

Actualizar Docker después de usar el script de conveniencia

Si se instaló Docker usando el script de conveniencia, se deberá actualizar Docker usando el administrador de paquetes directamente. No hay ninguna ventaja en volver a ejecutar el script de conveniencia. Volver a ejecutarlo puede causar problemas si se intenta reinstalar repositorios que ya existen en la máquina host.

Enlaces de referencia

Last updated