Compartir comentarios
Las respuestas se generan en base a la documentación.

Install Docker Desktop on Linux

Términos de Docker Desktop

El uso comercial de Docker Desktop en empresas más grandes (más de 250 empleados o más de $10 millones de USD en ingresos anuales) requiere una suscripción de pago.

Esta página contiene información sobre los requisitos generales del sistema, las plataformas compatibles e instrucciones sobre cómo instalar Docker Desktop para Linux.

Important

Docker Desktop en Linux ejecuta una máquina virtual (VM) que crea y utiliza un contexto de docker personalizado, desktop-linux, al iniciarse.

Esto significa que las imágenes y contenedores desplegados en el Docker Engine de Linux (antes de la instalación) no estarán disponibles en Docker Desktop para Linux.

Important

Para el uso comercial de Docker Engine obtenido a través de Docker Desktop en empresas más grandes (que superen los 250 empleados o con ingresos anuales superiores a los $10 millones de USD), se requiere una suscripción de pago.

Docker Desktop para Linux proporciona una interfaz gráfica fácil de usar que simplifica la gestión de contenedores y servicios. Incluye Docker Engine, ya que es la tecnología principal que hace funcionar los contenedores de Docker. Docker Desktop para Linux también viene con características adicionales como Docker Scout y las Extensiones de Docker.

Instalar Docker Desktop y Docker Engine

Docker Desktop para Linux y Docker Engine se pueden instalar en paralelo en el mismo equipo. Docker Desktop para Linux almacena contenedores e imágenes en una ubicación de almacenamiento aislada dentro de una VM y ofrece controles para limitar sus recursos. Utilizar una ubicación de almacenamiento dedicada para Docker Desktop evita que interfiera con una instalación de Docker Engine en la misma máquina.

Aunque es posible ejecutar simultáneamente Docker Desktop y Docker Engine, puede haber situaciones en las que ejecutar ambos a la vez cause problemas. Por ejemplo, al mapear puertos de red (-p / --publish) para contenedores, tanto Docker Desktop como Docker Engine pueden intentar reservar el mismo puerto en tu equipo, lo que puede provocar conflictos ("puerto ya en uso").

En general, recomendamos detener Docker Engine mientras utilizas Docker Desktop para evitar que Docker Engine consuma recursos y para prevenir los conflictos descritos anteriormente.

Utiliza el siguiente comando para detener el servicio de Docker Engine:

$ sudo systemctl stop docker docker.socket containerd

Dependiendo de tu instalación, Docker Engine puede estar configurado para iniciarse automáticamente como un servicio del sistema cuando se enciende tu máquina. Utiliza el siguiente comando para deshabilitar el servicio de Docker Engine y evitar que se inicie automáticamente:

$ sudo systemctl disable docker docker.socket containerd

Cambiar entre Docker Desktop y Docker Engine

La CLI de Docker se puede utilizar para interactuar con múltiples Docker Engines. Por ejemplo, puedes utilizar la misma CLI de Docker para controlar un Docker Engine local y para controlar una instancia remota de Docker Engine que se ejecute en la nube. Los contextos de Docker te permiten cambiar entre las instancias de los Docker Engines.

Al instalar Docker Desktop, se crea un contexto dedicado "desktop-linux" para interactuar con Docker Desktop. Al iniciarse, Docker Desktop establece automáticamente su propio contexto (desktop-linux) como el contexto actual. Esto significa que los comandos posteriores de la CLI de Docker tendrán como objetivo a Docker Desktop. Al cerrarse, Docker Desktop restablece el contexto actual al contexto default.

Utiliza el comando docker context ls para ver qué contextos están disponibles en tu equipo. El contexto actual se indica con un asterisco (*).

$ docker context ls
NAME            DESCRIPTION                               DOCKER ENDPOINT                                  ...
default *       Current DOCKER_HOST based configuration   unix:///var/run/docker.sock                      ...
desktop-linux                                             unix:///home/<user>/.docker/desktop/docker.sock  ...

Si tienes tanto Docker Desktop como Docker Engine instalados en la misma máquina, puedes ejecutar el comando docker context use para cambiar entre los contextos de Docker Desktop y Docker Engine. Por ejemplo, utiliza el contexto "default" para interactuar con Docker Engine:

$ docker context use default
default
Current context is now "default"

Y utiliza el contexto desktop-linux para interactuar con Docker Desktop:

$ docker context use desktop-linux
desktop-linux
Current context is now "desktop-linux"

Consulta la documentación de los contextos de Docker para obtener más detalles.

Plataformas compatibles

Docker proporciona paquetes .deb y .rpm para las siguientes distribuciones y arquitecturas de Linux:

Platformx86_64 / amd64
Ubuntu
Debian
Red Hat Enterprise Linux (RHEL)
Fedora

Hay disponible un paquete experimental para distribuciones basadas en Arch. Docker no ha probado ni verificado la instalación.

Docker ofrece soporte para Docker Desktop en las versiones LTS actuales y anteriores de las distribuciones mencionadas, así como en la versión más reciente.

Requisitos generales del sistema

Para instalar Docker Desktop con éxito, tu host Linux debe cumplir con los siguientes requisitos generales:

  • Kernel de 64 bits y soporte de CPU para virtualización.
  • Soporte de virtualización KVM. Sigue las instrucciones de soporte de virtualización KVM para comprobar si los módulos del kernel KVM están habilitados y cómo proporcionar acceso al dispositivo KVM.
  • QEMU debe ser la versión 5.2 o posterior. Recomendamos actualizar a la versión más reciente.
  • Sistema de inicio systemd.
  • Se admiten los entornos de escritorio GNOME, KDE o MATE, pero otros pueden funcionar.
    • En muchas distribuciones de Linux, el entorno GNOME no admite iconos de bandeja. Para añadir soporte para iconos de bandeja, debes instalar una extensión de GNOME. Por ejemplo, AppIndicator.
  • Al menos 4 GB de RAM.
  • Habilitar la configuración de mapeo de ID en espacios de nombres de usuario, consulta File sharing. Ten en cuenta que a partir de la versión 4.35 de Docker Desktop, esto ya no es necesario.
  • Recomendado: Inicializar pass para la gestión de credenciales.

Docker Desktop para Linux ejecuta una máquina virtual (VM). Para más información sobre el porqué, consulta Por qué Docker Desktop para Linux ejecuta una VM.

Note

Docker no ofrece soporte para ejecutar Docker Desktop para Linux en escenarios de virtualización anidada. Recomendamos ejecutar Docker Desktop para Linux de forma nativa en las distribuciones compatibles.

Soporte de virtualización KVM

Docker Desktop ejecuta una VM que requiere soporte de KVM.

El módulo kvm debería cargarse automáticamente si el host tiene soporte para virtualización. Para cargar el módulo manualmente, ejecuta:

$ modprobe kvm

Dependiendo del procesador de la máquina host, se debe cargar el módulo correspondiente:

$ modprobe kvm_intel  # Intel processors

$ modprobe kvm_amd    # AMD processors

Si los comandos anteriores fallan, puedes ver el diagnóstico ejecutando:

$ kvm-ok

Para comprobar si los módulos de KVM están habilitados, ejecuta:

$ lsmod | grep kvm
kvm_amd               167936  0
ccp                   126976  1 kvm_amd
kvm                  1089536  1 kvm_amd
irqbypass              16384  1 kvm

Configurar los permisos de usuario del dispositivo KVM

Para comprobar la propiedad de /dev/kvm, ejecuta:

$ ls -al /dev/kvm

Añade tu usuario al grupo kvm para poder acceder al dispositivo kvm:

$ sudo usermod -aG kvm $USER

Cierra la sesión y vuelve a iniciarla para que se vuelva a evaluar tu pertenencia al grupo.

Uso de SDKs de Docker con Docker Desktop

Docker Desktop para Linux utiliza un socket por usuario en lugar de /var/run/docker.sock para todo el sistema. Los SDKs y herramientas de Docker que se conectan directamente al demonio de Docker necesitan tener configurada la variable de entorno DOCKER_HOST para conectarse a Docker Desktop. Para obtener detalles de configuración, consulta ¿Cómo utilizo los SDKs de Docker con Docker Desktop para Linux?.

¿Qué sigue?