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:

  1. Portabilidad: Los contenedores Docker pueden ejecutarse en cualquier sistema operativo que soporte Docker, lo que facilita mover aplicaciones entre diferentes entornos.
  2. 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.
  3. Escalabilidad: Docker permite escalar aplicaciones fácilmente, ya que se pueden desplegar múltiples contenedores de una misma aplicación.
  4. 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:

Plataformas compatibles

Plataformax86_64/amd64brazo64 / aarch64brazo (32 bits)ppc64les390x
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.

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 :

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:

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:

Además, Docker Engine depende de containerdrunc. Docker Engine agrupa estas dependencias en un solo paquete: containerd.io. Si ha instalado containerdruncanteriormente, 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:

Instalar usando repositorio apt

Antes de instalar Docker Engine por primera vez en una nueva máquina host, debe configurar el aptrepositorio 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 debarchivo 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:

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 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 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 rootsudoprivilegios 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 rootprivilegios 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.