Docker es una plataforma de código abierto que permite desarrollar, enviar y ejecutar aplicaciones dentro de contenedores. Los contenedores son entornos ligeros y portátiles que incluyen todo lo necesario para ejecutar una aplicación: código, runtime, bibliotecas y configuraciones del sistema.
Ventajas de Docker:
- Portabilidad: Los contenedores Docker pueden ejecutarse en cualquier sistema operativo que soporte Docker, lo que facilita mover aplicaciones entre diferentes entornos.
- Eficiencia: Los contenedores comparten el kernel del sistema operativo del host, lo que los hace más ligeros y rápidos que las máquinas virtuales.
- Escalabilidad: Docker permite escalar aplicaciones fácilmente, ya que se pueden desplegar múltiples contenedores de una misma aplicación.
- Aislamiento: Cada contenedor funciona de manera independiente, lo que mejora la seguridad y la estabilidad de las aplicaciones.
¿Cómo funciona Docker?
Docker utiliza el kernel de Linux y sus características, como los grupos de control y los espacios de nombres, para ejecutar procesos de manera aislada. Esto permite que múltiples contenedores se ejecuten en un solo host sin interferir entre sí.
Instalar Docker Engine
Esta sección describe cómo instalar Docker Engine en Linux, también conocido como Docker CE. Docker Engine también está disponible para Windows, macOS y Linux a través de Docker Desktop. Para obtener instrucciones sobre cómo instalar Docker Desktop, consulte:
- Escritorio Docker para Linux
- Escritorio Docker para Mac (macOS)
- Docker Desktop para Windows
Plataformas compatibles
Plataforma | x86_64/amd64 | brazo64 / aarch64 | brazo (32 bits) | ppc64le | s390x |
---|---|---|---|---|---|
CentOS | ✅ | ✅ | ✅ | ||
Debian | ✅ | ✅ | ✅ | ✅ | |
Fedora | ✅ | ✅ | ✅ | ||
Sistema operativo Raspberry Pi (32 bits) | ✅ | ||||
Redacción Humanitaria Europea | 🚧 | 🚧 | ✅ | ||
LES | ✅ | ||||
Ubuntu | ✅ | ✅ | ✅ | ✅ | ✅ |
Binarios | ✅ | ✅ | ✅ |
🚧 = Experimental
Otras distribuciones de Linux
Nota: Si bien las siguientes instrucciones pueden funcionar, Docker no prueba ni verifica la instalación en derivados de distribuciones.
- Si utilizas derivados de Debian como “BunsenLabs Linux”, “Kali Linux” o “LMDE” (Mint basado en Debian) deberás seguir las instrucciones de instalación de Debian , sustituyendo la versión de tu distro por la correspondiente a Debian. Consulte la documentación de su distribución para encontrar qué versión de Debian corresponde con su versión derivada.
- Asimismo, si utilizas derivados de Ubuntu como “Kubuntu”, “Lubuntu” o “Xubuntu” deberás seguir las instrucciones de instalación de Ubuntu , sustituyendo la versión de tu distro por la versión de Ubuntu correspondiente. Consulte la documentación de su distribución para encontrar qué versión de Ubuntu corresponde con su versión derivada.
- Algunas distribuciones de Linux proporcionan un paquete de Docker Engine a través de sus repositorios de paquetes. Estos paquetes son creados y mantenidos por los mantenedores de paquetes de la distribución de Linux y pueden tener diferencias en la configuración o estar creados a partir de código fuente modificado. Docker no participa en el lanzamiento de estos paquetes y usted debe informar cualquier error o problema relacionado con estos paquetes al rastreador de problemas de su distribución de Linux.
Docker proporciona archivos binarios para la instalación manual de Docker Engine. Estos binarios están vinculados estáticamente y puedes usarlos en cualquier distribución de Linux.
Canales de lanzamiento
Docker Engine tiene dos tipos de canales de actualización, estable y de prueba :
- El canal estable le brinda las últimas versiones lanzadas para disponibilidad general.
- El canal de prueba le ofrece versiones preliminares que están listas para probarse antes de la disponibilidad general.
Utilice el canal de prueba con precaución. Las versiones preliminares incluyen funciones experimentales y de acceso anticipado que están sujetas a cambios importantes.
Apoyo
Docker Engine es un proyecto de código abierto, respaldado por los mantenedores del proyecto Moby y miembros de la comunidad. Docker no proporciona soporte para Docker Engine. Docker brinda soporte para productos Docker, incluido Docker Desktop, que utiliza Docker Engine como uno de sus componentes.
Para obtener información sobre el proyecto de código abierto, consulte el sitio web del proyecto Moby .
Ruta de actualización
Las versiones de parches siempre son compatibles con su versión principal y secundaria.
Licencia
Docker Engine tiene la licencia Apache, versión 2.0. Consulte LICENCIA para obtener el texto completo de la licencia.
Informar sobre problemas de seguridad
Si descubre un problema de seguridad, le solicitamos que nos lo comunique de inmediato.
NO presente un problema público. En su lugar, envíe su informe de forma privada a security@docker.com.
Los informes de seguridad son muy apreciados y Docker se lo agradecerá públicamente.
Empezar
Después de configurar Docker, puede aprender los conceptos básicos con Primeros pasos con Docker.
Instalar Docker Engine en Debian
Para comenzar a utilizar Docker Engine en Debian, asegúrese de cumplir con los requisitos previos y luego siga los pasos de instalación .
Prerrequisitos
Nota: Si utiliza ufw o firewalld para administrar la configuración del firewall, tenga en cuenta que cuando expone los puertos de contenedores mediante Docker, estos puertos omiten las reglas del firewall. Para obtener más información, consulte Docker y ufw.
Requisitos del sistema operativo
Para instalar Docker Engine, necesita la versión de 64 bits de una de estas versiones de Debian:
- Debian Bookworm 12 (estable)
- Debian Bullseye 11 (versión estable antigua)
Docker Engine para Debian es compatible con arquitecturas x86_64 (o amd64), armhf, arm64 y ppc64le (ppc64el).
Desinstalar versiones antiguas
Antes de poder instalar Docker Engine, debe desinstalar cualquier paquete conflictivo.
Los encargados del mantenimiento de distribuciones proporcionan distribuciones no oficiales de paquetes Docker en sus repositorios. Debes desinstalar estos paquetes antes de poder instalar la versión oficial de Docker Engine.
Los paquetes no oficiales a desinstalar son:
docker.io
docker-compose
docker-doc
podman-docker
Además, Docker Engine depende de containerd
y runc
. Docker Engine agrupa estas dependencias en un solo paquete: containerd.io
. Si ha instalado containerd
o runc
anteriormente, desinstálelos para evitar conflictos con las versiones incluidas con Docker Engine.
Ejecute el siguiente comando para desinstalar todos los paquetes conflictivos:
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt remove $pkg; done
apt
podría informar que no tiene ninguno de estos paquetes instalado.
Las imágenes, los contenedores, los volúmenes y las redes almacenados en /var/lib/docker/
Docker no se eliminan automáticamente al desinstalar Docker. Si desea comenzar con una instalación limpia y prefiere limpiar los datos existentes, lea la sección sobre desinstalación de Docker Engine .
Métodos de instalación
Puede instalar Docker Engine de diferentes formas, según sus necesidades:
- Docker Engine viene incluido con Docker Desktop para Linux . Esta es la forma más fácil y rápida de comenzar.
- Configure e instale Docker Engine desde el repositorio de Docker
apt
. - Instálelo manualmente y administre las actualizaciones manualmente.
- Utilice un script de conveniencia . Se recomienda únicamente para entornos de prueba y desarrollo.
Instalar usando repositorio apt
Antes de instalar Docker Engine por primera vez en una nueva máquina host, debe configurar el apt
repositorio de Docker. Luego, puede instalar y actualizar Docker desde el repositorio.
1.- Configurar aptel repositorio de Docker.
# Add Docker's official GPG key:
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/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
Nota: Si usa una distribución derivada, como Kali Linux, es posible que deba sustituir la parte de este comando que se espera que imprima el nombre en clave de la versión:
(. /etc/os-release && echo "$VERSION_CODENAME")
Reemplace esta parte con el nombre en clave de la versión de Debian correspondiente, como bookworm.
2.- Instale los paquetes de Docker.
Para instalar la última versión, ejecute:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3.- Verifique que la instalación sea exitosa ejecutando la hello-world imagen:
sudo docker run hello-world
Este comando descarga una imagen de prueba y la ejecuta en un contenedor. Cuando el contenedor se ejecuta, imprime un mensaje de confirmación y sale.
Ahora ha instalado e iniciado Docker Engine con éxito.
Conejo
¿Recibes errores al intentar ejecutar sin root?
El grupo de usuarios de docker existe pero no contiene usuarios, por lo que debe usarlo sudopara ejecutar comandos de Docker. Continúe con la postinstalación de Linux para permitir que los usuarios sin privilegios ejecuten comandos de Docker y para otros pasos de configuración opcionales.
Actualizar el motor Docker
Para actualizar Docker Engine, siga el paso 2 de las instrucciones de instalación , eligiendo la nueva versión que desea instalar.
Instalar desde un paquete
Si no puede utilizar apt
el repositorio de Docker para instalar Docker Engine, puede descargar el deb
archivo correspondiente a su versión e instalarlo manualmente. Debe descargar un archivo nuevo cada vez que desee actualizar Docker Engine.
1.- Ir a https://download.docker.com/linux/debian/dists/.
2.- Seleccione su versión de Debian en la lista.
3.- Vaya a pool/stable/ y seleccione la arquitectura aplicable ( amd64, armhf, arm64 o s390x).
4.- Descargue los siguientes archivos .deb 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
5.- Instale los paquetes .deb. Actualice las rutas en el siguiente ejemplo 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.
6.- Verifique 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 el contenedor se ejecuta, imprime un mensaje de confirmación y sale.
Ahora ha instalado e iniciado Docker Engine con éxito.
Consejo
¿Recibes errores al intentar ejecutar sin root?
El grupo de usuarios de docker existe pero no contiene usuarios, por lo que debe usarlo sudopara ejecutar comandos de Docker. Continúe con la postinstalación de Linux para permitir que los usuarios sin privilegios ejecuten comandos de Docker y para otros pasos de configuración opcionales.
Actualizar el motor Docker
Para actualizar Docker Engine, descargue los archivos del paquete más nuevos y repita el procedimiento de instalación , señalando 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 es útil para crear un script de aprovisionamiento adaptado a sus necesidades. Consulte también los pasos de instalación mediante el repositorio para obtener información sobre los pasos de instalación mediante el repositorio de paquetes. El código fuente del script es de código abierto y puede encontrarlo en el repositorio en GitHub dentro de docker-install
.
Examine siempre los scripts descargados de Internet antes de ejecutarlos localmente. Antes de instalarlos, familiarícese con los posibles riesgos y limitaciones del script de conveniencia:
- El script requiere
root
osudo
privilegios para ejecutarse. - El script intenta detectar su distribución y versión de Linux y configurar su sistema de administración de paquetes por usted.
- El script no le permite personalizar la mayoría de los parámetros de instalación.
- El script instala dependencias y recomendaciones sin pedir confirmación. Esto puede instalar una gran cantidad de paquetes, dependiendo de la configuración actual de su máquina host.
- De forma predeterminada, el script instala la última versión estable de Docker, Containerd y Runc. Al utilizar este script para aprovisionar una máquina, esto puede provocar actualizaciones inesperadas de la versión principal de Docker. Pruebe siempre las actualizaciones en un entorno de prueba antes de implementarlas en sus sistemas de producción.
- El script no está diseñado para actualizar una instalación de Docker existente. Al utilizar el script para actualizar una instalación existente, es posible que las dependencias no se actualicen a la versión esperada, lo que genera versiones obsoletas.
Consejo: obtenga una vista previa de los pasos del script antes de ejecutarlo
Puede ejecutar el script con la –dry-runopción de saber qué pasos ejecutará el script cuando se invoque:
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 ha instalado e iniciado Docker Engine con éxito. El docker
servicio se inicia automáticamente en distribuciones basadas en Debian. En RPM
distribuciones basadas, como CentOS, Fedora, RHEL o SLES, debe iniciarlo manualmente usando el comando systemctl
o apropiado service
. Como indica el mensaje, los usuarios que no son root no pueden ejecutar comandos de Docker de forma predeterminada.
¿Utilizar Docker como usuario sin privilegios o instalarlo en modo sin raíz?
El script de instalación requiere privilegios root
o sudo
privilegios para instalar y usar Docker. Si desea otorgar acceso a Docker a usuarios que no sean root, consulte los pasos posteriores a la instalación para Linux . También puede instalar Docker sin root
privilegios o configurarlo para que se ejecute en modo sin root. Para obtener instrucciones sobre cómo ejecutar Docker en modo sin root, consulte ejecutar el demonio de Docker como usuario que no sea root (modo sin root) .
Instalar versiones preliminares
Docker también proporciona un script conveniente 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, versiones candidatas) de Docker. Utilice este script para obtener acceso temprano a nuevas versiones y evaluarlas en un entorno de prueba antes de que se lancen como estables.
Para instalar la última versión de Docker en Linux desde el canal de prueba, ejecute:
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 instaló Docker con el script de conveniencia, debe actualizar Docker directamente con su administrador de paquetes. No hay ninguna ventaja en volver a ejecutar el script de conveniencia. Volver a ejecutarlo puede causar problemas si intenta reinstalar repositorios que ya existen en la máquina host.
Desinstalar el motor Docker
Desinstale los paquetes Docker Engine, CLI, contenedord y Docker Compose:
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
Las imágenes, contenedores, volúmenes o 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 los archivos de configuración editados.