Instalación de Docker en Ubuntu (4 formas sencillas)

Publicado: 2022-12-05

Docker es una herramienta popular para desarrollar e implementar software en paquetes conocidos como contenedores. Ubuntu es una de las distribuciones de Linux más populares y es un sistema operativo bien soportado por Docker.

La instalación de Docker en Ubuntu crea una plataforma ideal para sus proyectos de desarrollo, utilizando máquinas virtuales livianas que comparten el kernel del sistema operativo de Ubuntu. Este tutorial lo ayudará a comenzar explicando 4 formas de hacer que eso suceda.


Más sobre Docker

Docker ayuda a que las aplicaciones sean portátiles al permitirle compilarlas y ejecutarlas en cualquier host de Docker. Una imagen de contenedor se puede usar sin modificaciones en cualquier lugar donde Docker esté disponible, desde su computadora portátil hasta la nube. Esto simplifica la experiencia del desarrollador al eliminar las diferencias entre los entornos de tiempo de ejecución. El formato de contenedor también es fácil de distribuir entre varias máquinas físicas, lo que le permite escalar fácilmente las aplicaciones en respuesta a la demanda cambiante.

Docker incluye todo lo que necesita para crear y ejecutar imágenes de contenedores, ya sean de Docker Hub y otros registros públicos, o de sus propios Dockerfiles.

Preparándose para instalar Docker en Ubuntu

Puede instalar la última versión de Docker en las versiones de Ubuntu 18.04, 20.04, 21.10 y 22.04. Se admiten las arquitecturas x64_64/AMD64, ARMhf, ARM64 y S390x.

Hay varias formas de instalar Docker, y su elección dependerá de la funcionalidad que necesite y su enfoque preferido para la administración de paquetes. Aprenderá todas las opciones posibles en esta guía.

¿Está buscando la plataforma perfecta para su próxima gran aplicación? Docker podría ser la respuesta... Aprende a instalarlo en esta guía Haz clic para twittear

Seleccionar un sabor de Docker

Docker en Linux era tradicionalmente solo para terminales. Una instalación funcional comprende Docker Engine, un demonio que ejecuta sus contenedores, y la docker de línea de comandos (CLI) de Docker para interactuar con el demonio.

Docker Desktop es una forma alternativa de usar Docker. Históricamente solo disponible en Windows y Mac, se lanzó para Linux en mayo de 2022. Docker Desktop en Ubuntu requiere un procesador AMD64 y Ubuntu 21.10 o 22.04. Proporciona una interfaz gráfica para administrar sus contenedores, un clúster de Kubernetes integrado y soporte para extensiones de terceros. Docker Desktop también le ofrece las CLI de docker y Docker Compose.

Docker Desktop se diferencia de Docker Engine en que utiliza una máquina virtual para ejecutar sus contenedores (razón por la cual se requiere Docker Desktop para los usuarios de Windows y MacOS). Aunque es posible usar ambos sabores en paralelo en Ubuntu, es posible que encuentre conflictos entre las versiones de la CLI de la docker . Lo mejor es elegir uno y apegarse a él. Elija Docker Engine si se siente cómodo con su terminal y desea el mejor soporte y rendimiento. La máquina virtual de Docker Desktop lo hace un poco más pesado, pero es la mejor opción si desea una interfaz de usuario integrada o planea usar Kubernetes.

Instalación del motor Docker en Ubuntu

Docker Engine es la forma estándar de ejecutar Docker en Ubuntu. Funciona con todas las versiones y entornos compatibles, desde una máquina Ubuntu Desktop local hasta su host en la nube Ubuntu Server. Asegúrese de estar ejecutando una versión de Ubuntu que sea 18.04 o posterior antes de continuar.

Docker Engine tiene 3 métodos de instalación diferentes:

  1. Un repositorio apt oficial de Ubuntu
  2. Un paquete independiente de Debian ( .deb )
  3. Un script de instalación automatizado

La opción 1, el repositorio apt de Ubuntu, es la más utilizada. Agrega Docker a su lista de paquetes para que pueda instalar fácilmente futuras actualizaciones ejecutando apt upgrade . La opción 2 no admite actualizaciones automáticas, pero es ideal para instalar Docker en sistemas fuera de línea con espacio de aire. El script de instalación automatizado es el método más simple para comenzar, pero está configurado solo para uso de desarrollo. Docker desaconseja su uso en entornos de producción.

Use el repositorio apt cuando esté trabajando con un sistema de producción, desee actualizaciones sencillas o necesite usar el mismo mecanismo en todos los entornos.

Utilice el script de instalación automatizado si desea una experiencia de configuración rápida mientras experimenta con Docker en su propia máquina.

1. Instalación de Docker usando el repositorio apt

Docker publica paquetes en su propio repositorio apt . Deberá agregar este repositorio a su lista de fuentes de apt ; de lo contrario, su instalación de apt no podrá encontrar los paquetes de Docker.

Comience actualizando su lista de paquetes existente e instalando algunas dependencias para los siguientes pasos. Las herramientas ca-certificates , curl , gnupg y lsb_release se utilizarán para descargar los detalles correctos del repositorio apt de Docker y la clave de firma para su sistema. Aunque probablemente ya tenga estos paquetes, no está de más asegurarse de que estén disponibles.

 $ sudo apt update $ sudo apt install ca-certificates curl gnupg lsb-release

A continuación, registre el llavero GPG de Docker con apt. Esto permitirá que apt valide los paquetes de Docker que instale.

 $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ sudo chmod a+r /etc/apt/keyrings/docker.gpg

El comando curl descarga la clave GPG de Docker para Ubuntu, la vuelve a convertir a la codificación OpenGPG estándar y la guarda en el directorio de claves de apt. chmod se usa para establecer los permisos en el archivo de llavero para que apt lo detecte de manera confiable.

Ahora puede agregar la fuente del paquete Docker a su sistema. Ejecute el siguiente comando:

 $ 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

Esto utiliza la sustitución de shell para detectar automáticamente la arquitectura de su sistema, como AMD64 o ARM64, y descargar la lista de paquetes adecuada. Se verificará utilizando la clave GPG agregada anteriormente. El repositorio se agrega como una nueva lista de paquetes dentro del apt /etc/apt/sources.list.d directory.

Actualice sus listas de paquetes nuevamente para que apt sepa que existen los paquetes de Docker:

 $ sudo apt update

Ahora puede usar el comando apt install para agregar los componentes de Docker a su sistema. Instalará la última versión de Docker Community Edition (CE). Hay tres paquetes para instalar:

  • docker-ce : el demonio del motor Docker.
  • docker-ce-cli : la CLI de Docker con la que interactuará.
  • containerd.io : el tiempo de ejecución del contenedor conocido como containerd que inicia y ejecuta sus contenedores.
 $ sudo apt install docker-ce docker-ce-cli containerd.io

2. Instalar Docker usando el paquete Debian

El paquete oficial .deb es fácil de configurar, pero deberá descargar e instalar manualmente cada nueva versión. Los paquetes se alojan en un servidor de archivos simple. Primero navegue a la página de notas de la versión de Docker para encontrar el último número de versión disponible, como 20.10.20. A continuación, diríjase a la página GitHub de containerd para verificar también su número de versión. Se verá como 1.6.8.

Ahora puede ejecutar la siguiente secuencia de comandos para descargar el conjunto correcto de paquetes para su plataforma. Reemplace <DOCKER_VERSION> y <CONTAINERD_VERSION> con los números de versión actuales de Docker y contenedor, respectivamente.

 $ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce.deb $ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-ce-cli_<DOCKER_VERSION>~3-0~ubuntu-focal_amd64.deb -o docker-ce-cli.deb $ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/containerd.io_<CONTAINERD_VERISON>-1_amd64.deb -o containerd.deb

También puede descargar los archivos e inspeccionar todas las versiones disponibles visitando la lista de directorios de su versión de Ubuntu en su navegador.

Una vez que haya descargado los paquetes Docker CE, CLI y containerd, use el siguiente comando para instalarlos:

 $ sudo apt install ./docker-ce.deb ./docker-ce-cli.deb ./containerd.deb

Ajuste los nombres de archivo si ha descargado manualmente los paquetes sin utilizar el script proporcionado anteriormente.

3. Instalación de Docker mediante el script de instalación

El script de conveniencia de Docker automatiza la instalación de todos los componentes de Docker. No es interactivo, por lo que puede sentarse y esperar mientras su sistema está preparado para usted.

Primero descarga el script:

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

Ahora ejecute el script con privilegios de root:

 $ sudo sh get-docker.sh Executing docker install script ...

Espere hasta que el script llegue a su fin. Debería ver un mensaje de confirmación que muestra que Docker está instalado.

El script está destinado a ser una solución única para todos. No puede personalizar lo que hace sin modificar directamente la fuente del script. Tampoco está diseñado para realizar actualizaciones de Docker, ya que no traerá dependencias a sus últimas versiones.

Asegurarse de que Docker Engine funcione en Ubuntu

Independientemente del método de instalación que haya utilizado, debe asegurarse de que todo funcione iniciando un contenedor:

 $ sudo docker run hello-world

Verá que el cliente de Docker extrae la hello-world:image a su máquina, desde el repositorio de Docker Hub:

 Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:7d246653d0511db2a6b2e0436cfd0e52ac8c066000264b3ce63331ac66dca625 Status: Downloaded newer image for hello-world:latest

Entonces se iniciará automáticamente un nuevo contenedor. La imagen de inicio "hello-world" está configurada para ejecutar un comando simple que genera información básica sobre Docker y luego sale inmediatamente:

 Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.

Ver el resultado que se muestra arriba significa que Docker está listo para usar. El daemon extrajo con éxito la imagen hello-world:latest de Docker Hub e inició un contenedor usándola. Todo, desde la línea "Hello from Docker" en adelante, fue emitido por el proceso dentro del contenedor.

Configuración de permisos del motor Docker en Ubuntu

Una instalación nueva de Docker Engine generalmente requiere privilegios de root para ejecutar los docker CLI de Docker. Debe prefijar cada comando con sudo , lo cual es un inconveniente.

Puede evitar este requisito si se agrega al grupo docker después de haber instalado Docker Engine siguiendo los pasos anteriores. Este cambio opcional le otorga los permisos para ejecutar los comandos de la docker como un usuario normal, sin sudo , lo que simplifica su experiencia de CLI.

Asegúrese de que el grupo de usuarios de la docker exista:

 $ sudo groupadd docker

Entonces añádete a ti mismo:

¿Luchando con el tiempo de inactividad y los problemas de WordPress? ¡Kinsta es la solución de hospedaje diseñada para ahorrarle tiempo! Echa un vistazo a nuestras características
 $ sudo usermod -aG docker $USER

Si anteriormente ejecutó algún comando docker con sudo , deberá corregir los permisos en su directorio ~/.docker :

 $ sudo chown $USER:$USER /home/$USER/.docker -R $ sudo chmod g+rwx $HOME/.docker -R

Esto garantiza que su propia cuenta de usuario pueda leer y escribir archivos en el directorio.

Cierre la sesión de su sistema y vuelva a iniciarla para que su nueva membresía de grupo surta efecto. Intente ejecutar un comando docker sin sudo :

 $ docker run hello-world

Este paso posterior a la instalación completa el proceso de configuración de Docker en Ubuntu. El daemon ya está configurado para iniciarse automáticamente, por lo que no tiene que configurar manualmente un servicio. Si está planeando una instalación avanzada, consulte el manual del usuario de Docker para obtener instrucciones sobre cómo configurar redes personalizadas, registro y administración de almacenamiento de volumen.

Agregar Docker Compose a su instalación de Ubuntu

Docker Compose es una popular herramienta complementaria de Docker que facilita el trabajo con aplicaciones que usan varios contenedores. Mientras que la CLI de docker solo apunta a un contenedor con cada comando, docker compose puede iniciar y detener varios contenedores con cada acción. Esto simplifica la administración de sistemas en los que tiene servicios independientes de frontend, backend y base de datos.

Docker Compose ahora está disponible como parte de la docker de Docker. El complemento Compose V2 se incluye cuando usa el script de instalación oficial para instalar Docker. También está disponible en apt si usaste ese método:

 $ sudo apt install docker-compose-plugin

Alternativamente, puede descargar el archivo .deb más reciente e instalarlo manualmente:

 $ curl https://download.docker.com/linux/ubuntu/dists/$(lsb_release --codename | cut -f2)/pool/stable/$(dpkg --print-architecture)/docker-compose-plugin_2.6.0~ubuntu-focal_amd64.deb -o docker-compose-plugin.deb $ sudo apt install -i ./docker-compose-plugin.deb

Comprueba que Compose está funcionando probando el comando docker compose version :

 $ docker compose version Docker Compose version v2.6.0

Instalación de Docker Desktop en Ubuntu

Si bien Docker Engine está restringido a una experiencia solo de CLI, Docker Desktop proporciona una interfaz de administración gráfica, compatibilidad integrada con Kubernetes y extensiones opcionales de terceros que pueden ayudar a simplificar los flujos de trabajo de sus contenedores. Es una excelente opción cuando busca la facilidad de uso en su propia estación de trabajo.

Para instalar Docker Desktop, primero instale algunas dependencias usando apt :

 $ sudo apt update $ sudo apt install ca-certificates curl gnupg lsb-release

A continuación, ejecute el siguiente conjunto de comandos para agregar el repositorio apt de Docker. Aunque Docker Desktop no está incluido en el repositorio, el archivo Debian de Desktop hace referencia a los paquetes que contiene como dependencias.

 $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ sudo chmod a+r /etc/apt/keyrings/docker.gpg $ 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 $ sudo apt update

El comando curl descarga la clave GPG de Docker para Ubuntu, la vuelve a convertir a la codificación OpenGPG estándar y la guarda en el directorio apt keyring. chmod se usa para establecer los permisos en el archivo de llavero para que apt lo detecte de manera confiable.

Descargue el archivo Docker Desktop Debian desde el enlace en la documentación. Esto proporcionará la última versión estable de Docker Desktop para Linux. Use apt para instalar el paquete, sustituyendo el número de versión que descargó:

 $ sudo apt install ./docker-desktop-4.11.0-amd64.deb

Docker Desktop ahora aparecerá en el iniciador de su aplicación. Use su lanzador para iniciar Docker Desktop y abrir la interfaz de usuario. También podrá ejecutar los comandos docker , docker compose y kubectl en su terminal. La aplicación también agrega un menú a su bandeja de shell que muestra el estado actual de Docker Desktop y le permite realizar algunas acciones rápidas.

Se le pedirá que acepte un acuerdo de servicio la primera vez que ejecute Docker Desktop. Presione el botón Aceptar si acepta y espere mientras Docker Desktop inicia su máquina virtual.

Después de unos momentos, se cargará el tablero. Proporciona accesos directos para crear nuevos contenedores a partir de imágenes populares, evitando largos comandos de terminal.

Captura de pantalla de Docker Desktop ejecutándose en Ubuntu.
Docker Desktop instalado en Ubuntu.

DevKinsta: Escritorio Docker para WordPress

Las soluciones especializadas construidas sobre la base de Docker brindan una experiencia aún más fácil para tecnologías específicas. DevKinsta es una herramienta de desarrollo local gratuita para crear temas y complementos de WordPress que utiliza Docker para aislar y proteger completamente sus sitios de WordPress. Hace que sea rápido y sencillo iniciar y personalizar un nuevo proyecto de WordPress sin configurar los servidores usted mismo. Una vez que esté listo, puede ingresar directamente a la plataforma Kinsta para implementar su sitio en vivo.

Puede instalar DevKinsta en MacOS, Windows y Ubuntu.

¿Quiere hacer que su proceso de desarrollo sea pan comido? ¡Pruebe Docker en Ubuntu para su próximo proyecto! Así es como puedes instalarlo ️ Haz clic para twittear

Resumen

Docker es la forma en que la mayoría de los desarrolladores comienzan a usar contenedores. Puede instalar fácilmente Docker en su sistema Ubuntu, ya sea como Docker Engine o como el nuevo Docker Desktop. Una vez que haya instalado Docker, estará totalmente equipado para crear y ejecutar contenedores, lo que le permitirá simplificar el desarrollo y reducir las discrepancias entre entornos.

Si está desarrollando temas y complementos de WordPress, DevKinsta puede simplificar la creación de un entorno de desarrollo local y la implementación de su sitio.