Instalar Docker Engine en Ubuntu
Para comenzar con Docker Engine en Ubuntu, asegúrate de que cumples con los prerrequisitos y luego sigue los pasos de instalación.
Prerrequisitos
Limitaciones del cortafuegos (firewall)
WarningAntes de instalar Docker, asegúrate de considerar las siguientes implicaciones de seguridad e incompatibilidades del cortafuegos.
- Si utilizas ufw o firewalld para gestionar la configuración del cortafuegos, ten en cuenta que cuando expones puertos de contenedores utilizando Docker, estos puertos omiten las reglas del cortafuegos. Para obtener más información, consulta Docker y ufw.
- Docker solo es compatible con
iptables-nfteiptables-legacy. Las reglas de cortafuegos creadas connftno son compatibles en un sistema con Docker instalado. Asegúrate de que los conjuntos de reglas de cortafuegos que utilices se creen coniptablesoip6tables, y de añadirlos a la cadenaDOCKER-USER. Consulta Filtrado de paquetes y cortafuegos.
Requisitos del sistema operativo
Para instalar Docker Engine, necesitas la versión de 64 bits de una de estas versiones de Ubuntu:
- Ubuntu Resolute 26.04 (LTS)
- Ubuntu Questing 25.10
- Ubuntu Noble 24.04 (LTS)
- Ubuntu Jammy 22.04 (LTS)
Docker Engine para Ubuntu es compatible con las arquitecturas x86_64 (o amd64), armhf, arm64, s390x y ppc64le (ppc64el).
NoteLa instalación en distribuciones derivadas de Ubuntu, como Linux Mint, no está admitida oficialmente (aunque puede funcionar).
Desinstalar versiones anteriores
Antes de que puedas instalar Docker Engine, debes desinstalar cualquier paquete conflictivo.
Es posible que tu distribución de Linux proporcione paquetes no oficiales de Docker, los cuales pueden entrar en conflicto con los paquetes oficiales proporcionados por Docker. Debes desinstalar estos paquetes antes de instalar la versión oficial de Docker Engine.
Los paquetes no oficiales a desinstalar son:
docker.iodocker-composedocker-compose-v2docker-docpodman-docker
Además, Docker Engine depende de containerd y runc. Docker Engine agrupa estas dependencias en un solo paquete: containerd.io. Si has instalado containerd o runc previamente, desinstálalos para evitar conflictos con las versiones agrupadas con Docker Engine.
Ejecuta el siguiente comando para desinstalar todos los paquetes conflictivos:
$ sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)
Es posible que apt indique que no tienes ninguno de estos paquetes instalado.
Las imágenes, contenedores, volúmenes y redes almacenados en /var/lib/docker/ no se eliminan automáticamente al desinstalar Docker. Si deseas comenzar con una instalación limpia y prefieres borrar los datos existentes, consulta la sección desinstalar Docker Engine.
Métodos de instalación
Puedes instalar Docker Engine de diferentes maneras, según tus necesidades:
Docker Engine viene agrupado con Docker Desktop para Linux. Esta es la forma más fácil y rápida de comenzar.
Configura e instala Docker Engine desde el repositorio
aptde Docker.Instálalo manualmente y gestiona las actualizaciones manualmente.
Utiliza un script de conveniencia. Recomendado únicamente para entornos de prueba y desarrollo.
Apache License, Versión 2.0. Consulta LICENSE para ver la licencia completa.
Instalar utilizando el repositorio apt
Antes de instalar Docker Engine por primera vez en una nueva máquina host, debes configurar el repositorio apt de Docker. Después, podrás instalar y actualizar Docker desde el repositorio.
Configura el repositorio
aptde Docker.# Añade la clave GPG oficial de Docker: sudo apt update sudo apt install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Añade el repositorio a las fuentes de Apt: sudo tee /etc/apt/sources.list.d/docker.sources <<EOF Types: deb URIs: https://download.docker.com/linux/ubuntu Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") Components: stable Architectures: $(dpkg --print-architecture) Signed-By: /etc/apt/keyrings/docker.asc EOF sudo apt updateInstala los paquetes de Docker.
Para instalar la última versión, ejecuta:
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginPara instalar una versión específica de Docker Engine, comienza por listar las versiones disponibles en el repositorio:
$ apt list --all-versions docker-ce docker-ce/noble 5:29.5.1-1~ubuntu.24.04~noble <arch> docker-ce/noble 5:29.5.0-1~ubuntu.24.04~noble <arch> ...Selecciona la versión deseada e instala:
$ VERSION_STRING=5:29.5.1-1~ubuntu.24.04~noble $ sudo apt install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-pluginNoteDespués de la instalación, verifica que Docker se esté ejecutando:
$ sudo systemctl status dockerSi Docker no se está ejecutando, inícialo manualmente:
$ sudo systemctl start dockerVerifica que la instalación se haya realizado correctamente ejecutando la imagen
hello-world:$ sudo docker run hello-worldEste comando descarga una imagen de prueba y la ejecuta en un contenedor. Cuando el contenedor se ejecuta, imprime un mensaje de confirmación y finaliza.
Ahora has instalado e iniciado correctamente Docker Engine.
Tip¿Recibes errores al intentar ejecutar sin root?
El grupo de usuarios
dockerexiste pero no contiene usuarios, por lo que debes usarsudopara ejecutar los comandos de Docker. Continúa a Pasos posteriores a la instalación en Linux para que los usuarios sin privilegios puedan ejecutar comandos de Docker y para ver otros pasos de configuración opcionales.
Actualizar Docker Engine
Para actualizar Docker Engine, sigue el paso 2 de las instrucciones de instalación, eligiendo la nueva versión que deseas instalar.
Instalar desde un paquete
Si no puedes utilizar el repositorio apt de Docker para instalar Docker Engine, puedes descargar el archivo .deb para tu versión e instalarlo manualmente. Deberás descargar un archivo nuevo cada vez que quieras actualizar Docker Engine.
Dirígete a
https://download.docker.com/linux/ubuntu/dists/.Selecciona tu versión de Ubuntu en la lista.
Dirígete a
pool/stable/y selecciona la arquitectura correspondiente (amd64,armhf,arm64os390x).Descarga los siguientes archivos
debpara los paquetes de Docker Engine, CLI, containerd y Docker Compose:containerd.io_<versión>_<arq>.debdocker-ce_<versión>_<arq>.debdocker-ce-cli_<versión>_<arq>.debdocker-buildx-plugin_<versión>_<arq>.debdocker-compose-plugin_<versión>_<arq>.deb
Instala los paquetes
.deb. Actualiza las rutas en el siguiente ejemplo por las ubicaciones donde descargaste los paquetes de Docker.$ sudo dpkg -i ./containerd.io_<versión>_<arq>.deb \ ./docker-ce_<versión>_<arq>.deb \ ./docker-ce-cli_<versión>_<arq>.deb \ ./docker-buildx-plugin_<versión>_<arq>.deb \ ./docker-compose-plugin_<versión>_<arq>.debNoteDespués de la instalación, verifica que Docker se esté ejecutando:
$ sudo systemctl status dockerSi Docker no se está ejecutando, inícialo manualmente:
$ sudo systemctl start dockerVerifica que la instalación se haya realizado correctamente ejecutando la imagen
hello-world:$ sudo docker run hello-worldEste comando descarga una imagen de prueba y la ejecuta en un contenedor. Cuando el contenedor se ejecuta, imprime un mensaje de confirmación y finaliza.
Ahora has instalado e iniciado correctamente Docker Engine.
Tip¿Recibes errores al intentar ejecutar sin root?
El grupo de usuarios
dockerexiste pero no contiene usuarios, por lo que debes usarsudopara ejecutar los comandos de Docker. Continúa a Pasos posteriores a la instalación en Linux para que los usuarios sin privilegios puedan ejecutar comandos de Docker y para ver otros pasos de configuración opcionales.
Actualizar Docker Engine
Para actualizar Docker Engine, descarga los archivos de paquete más recientes y repite el procedimiento de instalación, apuntando a los nuevos archivos.
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. El script de conveniencia no se
recomienda para entornos de producción, pero resulta útil para crear un
script de aprovisionamiento adaptado a tus necesidades. Consulta también los
pasos de instalar usando el repositorio para
conocer los pasos de instalación utilizando el repositorio de paquetes. El código
fuente del script es de código abierto y puedes encontrarlo en el
repositorio docker-install en GitHub.
Examina siempre los scripts descargados de internet antes de ejecutarlos localmente. Antes de la instalación, familiarízate con los posibles riesgos y limitaciones del script de conveniencia:
- El script requiere privilegios de
rootosudopara ejecutarse. - El script intenta detectar tu distribución y versión de Linux y configurar tu sistema de gestión de paquetes por ti.
- El script no te deja personalizar la mayoría de los parámetros de instalación.
- El script instala dependencias y recomendaciones sin solicitar confirmación. Esto puede instalar una gran cantidad de paquetes, dependiendo de la configuración de tu máquina host.
- De forma predeterminada, el script instala la versión estable más reciente de Docker, containerd y runc. Al usar este script para aprovisionar una máquina, esto puede dar lugar a actualizaciones inesperadas de versiones principales de Docker. Prueba siempre las actualizaciones en un entorno de pruebas antes de desplegarlas en tus sistemas de producción.
- El script no está diseñado para actualizar una instalación existente de Docker. Al usar el script para actualizar una instalación existente, es posible que las dependencias no se actualicen a la versión esperada, lo que daría como resultado versiones desactualizadas.
TipVisualiza previamente los pasos del script antes de ejecutarlo. Puedes ejecutar el script con la opción
--dry-runpara conocer qué pasos ejecutará el script cuando sea invocado:$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh ./get-docker.sh --dry-run
Este ejemplo descarga el script desde https://get.docker.com/ y lo ejecuta para instalar la versión estable más reciente 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
<...>
Has instalado e iniciado Docker Engine de forma correcta. El servicio docker
se inicia automáticamente en distribuciones basadas en Debian. En distribuciones basadas en
RPM, como CentOS, Fedora o RHEL, debes iniciarlo
manualmente usando el comando systemctl o service adecuado. Como indica el mensaje,
los usuarios que no sean root no pueden ejecutar comandos de Docker de forma predeterminada.
¿Usar Docker como usuario sin privilegios o instalarlo en modo rootless?
El script de instalación requiere privilegios de
rootosudopara instalar y usar Docker. Si quieres conceder acceso a Docker a usuarios que no sean root, consulta los pasos posteriores a la instalación para Linux. También puedes instalar Docker sin privilegios derooto configurarlo para ejecutarse en modo rootless. Para obtener instrucciones sobre cómo ejecutar Docker en modo rootless, consulta ejecutar el demonio de Docker como usuario que no es root (modo rootless).
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 idéntico al de get.docker.com, pero
configura tu gestor de paquetes para usar el canal de prueba (test) del repositorio de paquetes
de Docker. El canal de prueba incluye tanto versiones estables como preliminares (versiones beta,
candidatas a lanzamiento) de Docker. Usa este script para obtener acceso anticipado a los
próximos lanzamientos y evaluarlos en un entorno de pruebas antes de que se
publiquen como estables.
Para instalar la versión más reciente de Docker en Linux desde el canal de prueba, ejecuta:
$ 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 instalaste Docker usando el script de conveniencia, debes actualizar Docker directamente usando tu gestor de paquetes. No tiene ninguna ventaja volver a ejecutar el script de conveniencia. Volver a ejecutarlo puede causar problemas si intenta volver a instalar repositorios que ya existen en la máquina host.
Desinstalar Docker Engine
Desinstala los paquetes de Docker Engine, CLI, containerd y Docker Compose:
$ sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extrasLas imágenes, contenedores, volúmenes o archivos de configuración personalizados en tu 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/containerdElimina la lista de fuentes y los llaveros (keyrings):
$ sudo rm /etc/apt/sources.list.d/docker.sources $ sudo rm /etc/apt/keyrings/docker.asc
Debes eliminar manualmente cualquier archivo de configuración que hayas editado.
Próximos pasos
- Continúa con los Pasos posteriores a la instalación en Linux.