Temas de resolución de problemas para Docker Desktop
TipSi no encuentras una solución en la resolución de problemas, explora los repositorios de GitHub o crea un nuevo problema.
Temas para todas las plataformas
Certificados no configurados correctamente
Mensaje de error
Al intentar descargar desde un registro utilizando docker run, es posible que encuentres el siguiente error:
Error response from daemon: Get http://192.168.203.139:5858/v2/: malformed HTTP response "\x15\x03\x01\x00\x02\x02"
Además, los logs del registro pueden mostrar:
2017/06/20 18:15:30 http: TLS handshake error from 192.168.203.139:52882: tls: client didn't provide a certificate
2017/06/20 18:15:30 http: TLS handshake error from 192.168.203.139:52883: tls: first record does not look like a TLS handshake
Causas posibles
- Docker Desktop ignora los certificados listados bajo registros inseguros.
- Los certificados de cliente no se envían a los registros inseguros, lo que provoca fallos en el acuerdo de conexión (handshake).
Solución
- Asegúrate de que tu registro esté configurado correctamente con certificados SSL válidos.
- Si tu registro es autofirmado, configura Docker para que confíe en el certificado añadiéndolo al directorio de certificados de Docker (/etc/docker/certs.d/ en Linux).
- Si el problema persiste, comprueba la configuración de tu demonio de Docker y habilita la autenticación TLS.
La interfaz de usuario de Docker Desktop se muestra verde, distorsionada o con artefactos visuales
Causa
Docker Desktop utiliza gráficos acelerados por hardware por defecto, lo que puede causar problemas con algunas GPUs.
Solución
Desactiva la aceleración por hardware:
Edita el archivo
settings-store.jsonde Docker Desktop. Puedes encontrar este archivo en:- Mac:
~/Library/Group Containers/group.com.docker/settings-store.json - Windows:
C:\Users\[USERNAME]\AppData\Roaming\Docker\settings-store.json - Linux:
~/.docker/desktop/settings-store.json.
- Mac:
Añade la siguiente entrada:
"disableHardwareAcceleration": trueGuarda el archivo y reinicia Docker Desktop.
Al utilizar volúmenes montados se producen errores de ejecución indicando que no se encuentra un archivo de la aplicación, se deniega el acceso a un montaje de volumen o un servicio no puede iniciarse
Causa
Si el directorio de tu proyecto se encuentra fuera de tu directorio de usuario (/home/<user>), Docker Desktop requiere permisos de uso compartido de archivos para acceder a él.
Solución
Activa el uso compartido de archivos en Docker Desktop para Mac y Linux:
- Ve a Settings, selecciona Resources y luego File sharing.
- Añade la unidad o carpeta que contiene el Dockerfile y las rutas de montaje de volumen.
Activa el uso compartido de archivos en Docker Desktop para Windows:
- Desde Settings, selecciona Shared Folders.
- Comparte la carpeta que contiene el Dockerfile y las rutas de montaje de volumen.
Errores de tipo port already allocated (puerto ya asignado)
Mensaje de error
Al iniciar un contenedor, es posible que veas un error como:
Bind for 0.0.0.0:8080 failed: port is already allocatedO bien
listen tcp:0.0.0.0:8080: bind: address is already in useCausa
- Otra aplicación en tu sistema ya está utilizando el puerto especificado.
- Un contenedor en ejecución anterior no se detuvo correctamente y todavía está vinculado al puerto.
Solución
Para descubrir la identidad de este software, puedes:
- Usar la interfaz gráfica
resmon.exe, seleccionar Network y luego Listening Ports. - En PowerShell, usar
netstat -aon | find /i "listening "para descubrir el PID del proceso que utiliza actualmente el puerto (el PID es el número en la columna de la extrema derecha).
Luego, decide si cerrar el otro proceso o utilizar un puerto diferente en tu aplicación de Docker.
Temas para Linux y Mac
Docker Desktop no se inicia en plataformas Mac o Linux
Mensaje de error
Docker no se inicia debido a las limitaciones de longitud de la ruta del socket de dominio Unix:
[vpnkit-bridge][F] listen unix <HOME>/Library/Containers/com.docker.docker/Data/http-proxy-control.sock: bind: invalid argument
[com.docker.backend][E] listen(vsock:4099) failed: listen unix <HOME>/Library/Containers/com.docker.docker/Data/vms/0/00000002.00001003: bind: invalid argument
Causa
En Mac y Linux, Docker Desktop crea sockets de dominio Unix que se utilizan para la comunicación entre procesos. Estos sockets se crean bajo el directorio de usuario.
Los sockets de dominio Unix tienen una longitud de ruta máxima:
- 104 caracteres en Mac
- 108 caracteres en Linux
Si la ruta de tu directorio de usuario es demasiado larga, Docker Desktop no podrá crear los sockets necesarios.
Solución
Asegúrate de que tu nombre de usuario sea lo suficientemente corto como para mantener las rutas dentro del límite permitido:
- Mac: El nombre de usuario debe ser ≤ 33 caracteres
- Linux: El nombre de usuario debe ser ≤ 55 caracteres
Temas para Mac
La actualización requiere privilegios de administrador
Causa
En macOS, los usuarios sin privilegios de administrador no pueden realizar actualizaciones desde el panel de Docker Desktop.
Solución
ImportantNo desinstales la versión actual antes de actualizar. Si lo haces, se eliminarán todos los contenedores, imágenes y volúmenes locales de Docker.
Para actualizar Docker Desktop:
- Pide a un administrador que instale la versión más reciente sobre la existente.
- Utiliza la bandera de instalación
--usersi es adecuada para tu configuración (consulta Instalación en Mac).
Notificación persistente que indica que una aplicación ha cambiado mis configuraciones de Desktop
Causa
Recibes esta notificación porque la función de comprobación de integridad de la configuración ha detectado que una aplicación de terceros ha alterado tu configuración de Docker Desktop. Esto suele suceder debido a enlaces simbólicos incorrectos o faltantes. La notificación garantiza que estés al tanto de estos cambios para que puedas revisar y reparar cualquier problema potencial para mantener la confiabilidad del sistema.
Al abrir la notificación se presenta una ventana emergente que proporciona información detallada sobre los problemas de integridad detectados.
Solución
Si decides ignorar la notificación, se mostrará de nuevo únicamente en el siguiente inicio de Docker Desktop. Si decides reparar tu configuración, no se te volverá a preguntar.
Si deseas desactivar las notificaciones de comprobación de integridad de la configuración, ve a la configuración de Docker Desktop y, en la pestaña General, desactiva la opción Automatically check configuration.
com.docker.vmnetd sigue ejecutándose después de salir de la aplicación
El proceso auxiliar con privilegios com.docker.vmnetd es iniciado por launchd y se ejecuta en segundo plano. El proceso no consume recursos a menos que Docker.app se conecte a él, por lo que es seguro ignorarlo.
Se detectó una CPU incompatible
Causa
Docker Desktop requiere un procesador (CPU) que admita virtualización y, específicamente, el Apple Hypervisor framework.
Solución
Comprueba que:
Has instalado el Docker Desktop correcto para tu arquitectura.
Tu Mac es compatible con el framework Hypervisor de Apple. Para verificar si tu Mac admite el framework Hypervisor, ejecuta el siguiente comando en una ventana de la terminal:
$ sysctl kern.hv_supportSi tu Mac admite el framework Hypervisor, el comando mostrará
kern.hv_support: 1.De lo contrario, el comando mostrará
kern.hv_support: 0.
Consulta también la Referencia del Framework Hypervisor en la documentación de Apple, y los Requisitos del sistema para Mac de Docker Desktop.
Temas para Windows
Docker Desktop no se inicia cuando hay un software antivirus instalado
Causa
Algunos programas antivirus pueden ser incompatibles con Hyper-V y las compilaciones de Microsoft Windows. El conflicto suele ocurrir después de una actualización de Windows y se manifiesta como una respuesta de error del demonio de Docker y un fallo al iniciar Docker Desktop.
Solución
Como solución temporal, desinstala el software antivirus o añade Docker a las exclusiones/excepciones de tu software antivirus.
Errores de permisos en directorios de datos para volúmenes compartidos
Causa
Al compartir archivos desde Windows, Docker Desktop establece los permisos en los volúmenes compartidos a un valor predeterminado de 0777 (permisos de lectura, escritura y ejecución para el usuario y el grupo).
Los permisos predeterminados en los volúmenes compartidos no son configurables.
Solución
Si estás trabajando con aplicaciones que requieren permisos diferentes, puedes:
- Utilizar volúmenes que no estén montados en el host.
- Encontrar una forma de hacer que las aplicaciones funcionen con los permisos de archivo predeterminados.
Errores de sintaxis inesperados, utiliza saltos de línea de estilo Unix para los archivos en contenedores
Causa
Los contenedores de Docker esperan saltos de línea de estilo Unix \n, no de estilo Windows \r\n. Esto incluye los archivos referenciados en la línea de comandos para las construcciones y en las instrucciones RUN de los archivos Docker.
Ten esto en cuenta al crear archivos como scripts de shell utilizando herramientas de Windows, donde el valor predeterminado suele ser saltos de línea de estilo Windows. Estos comandos finalmente se pasan a comandos de Unix dentro de un contenedor basado en Unix (por ejemplo, un script de shell pasado a /bin/sh). Si se utilizan saltos de línea de estilo Windows, docker run falla con errores de sintaxis.
Solución
Convierte los archivos a saltos de línea de estilo Unix utilizando:
$ dos2unix script.shEn VS Code, establece los saltos de línea en
LF(Unix) en lugar deCRLF(Windows).
Errores de conversión de rutas en Windows
Causa
A diferencia de Linux, Windows requiere una conversión de ruta explícita para el montaje de volúmenes.
En Linux, el sistema se encarga de montar una ruta en otra ruta. Por ejemplo, al ejecutar el siguiente comando en Linux:
$ docker run --rm -ti -v /home/user/work:/work alpine
Añade un directorio /work al contenedor de destino para reflejar la ruta especificada.
Solución
Actualiza la ruta de origen. Por ejemplo, si estás utilizando la consola heredada de Windows (cmd.exe), puedes utilizar el siguiente comando:
$ docker run --rm -ti -v C:\Users\user\work:/work alpine
Esto inicia el contenedor y garantiza que el volumen sea utilizable. Esto es posible porque Docker Desktop detecta la ruta de estilo Windows y proporciona la conversión adecuada para montar el directorio.
Docker Desktop también te permite utilizar rutas de estilo Unix con el formato adecuado. Por ejemplo:
$ docker run --rm -ti -v /c/Users/user/work:/work alpine ls /work
Fallo de comandos de Docker en Git Bash
Mensaje de error
$ docker run --rm -ti -v C:\Users\user\work:/work alpine
docker: Error response from daemon: mkdir C:UsersUserwork: Access is denied.
$ docker run --rm -ti -v $(pwd):/work alpine
docker: Error response from daemon: OCI runtime create failed: invalid mount {Destination:\Program Files\Git\work Type:bind Source:/run/desktop/mnt/host/c/Users/user/work;C Options:[rbind rprivate]}: mount destination \Program Files\Git\work not absolute: unknown.
Causa
Git Bash (o MSYS) proporciona un entorno similar a Unix en Windows. Estas herramientas aplican su propio preprocesamiento en la línea de comandos.
Esto afecta a $(pwd), las rutas separadas por dos puntos y la tilde (~).
Además, el carácter \ tiene un significado especial en Git Bash.
Solución
- Desactiva temporalmente la conversión de rutas de Git Bash. Por ejemplo, ejecuta el comando con la conversión de rutas de MSYS desactivada:
$ MSYS_NO_PATHCONV=1 docker run --rm -ti -v $(pwd):/work alpine - Utiliza el formato de ruta adecuado:
- Utiliza barras diagonales dobles (
\\//) en lugar de simples (\/). - Si haces referencia a
$(pwd), añade una barra adicional/:
- Utiliza barras diagonales dobles (
La portabilidad de los scripts no se ve afectada, ya que Linux trata múltiples / como una sola entrada.
Docker Desktop falla debido a que la virtualización no funciona
Mensaje de error
Un mensaje de error típico es "Docker Desktop - Unexpected WSL error" que menciona el código de error Wsl/Service/RegisterDistro/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED. La ejecución manual de comandos de wsl también falla con el mismo código de error.
Causa
- Los ajustes de virtualización están desactivados en la BIOS.
- Faltan componentes de Windows Hyper-V o WSL 2.
Ten en cuenta que algunos programas de terceros, como los emuladores de Android, desactivarán Hyper-V al instalarse.
Soluciones
Tu máquina debe contar con las siguientes características para que Docker Desktop funcione correctamente:
WSL 2 y Windows Home
- Plataforma de máquina virtual
- Subsistema de Windows para Linux (WSL)
- Virtualización activada en la BIOS. Ten en cuenta que muchos dispositivos Windows ya tienen la virtualización activada por defecto, por lo que esto podría no ser necesario.
- Hipervisor activado al inicio de Windows

Debe ser posible ejecutar comandos de WSL 2 sin errores, por ejemplo:
PS C:\users\> wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
docker-desktop Stopped 2
PS C:\users\> wsl -d docker-desktop echo WSL 2 is working
WSL 2 is working
Si las funciones están activadas pero los comandos no funcionan, comprueba primero que la virtualización esté activada y luego activa el hipervisor al inicio de Windows si es necesario. Si estás ejecutando Docker Desktop en una máquina virtual, asegúrate de que el hipervisor tenga activada la virtualización anidada.
Hyper-V
En Windows 10 Pro o Enterprise, también puedes usar Hyper-V con las siguientes funciones activadas:
- Hyper-V instalado y funcionando.
- Virtualización activada en la BIOS. Ten en cuenta que muchos dispositivos Windows ya tienen la virtualización activada por defecto, por lo que esto podría no ser necesario.
- Hipervisor activado al inicio de Windows

Docker Desktop requiere que Hyper-V, así como el módulo Hyper-V para Windows PowerShell, estén instalados y activados. El instalador de Docker Desktop los activa por ti.
Docker Desktop también necesita dos funciones de hardware de la CPU para utilizar Hyper-V: Virtualización y Traducción de direcciones de segundo nivel (SLAT), que también se denomina Indexación rápida de virtualización (RVI). En algunos sistemas, la virtualización debe estar activada en la BIOS. Los pasos necesarios varían según el fabricante, pero normalmente la opción de la BIOS se llama Virtualization Technology (VTx) o algo similar. Ejecuta el comando systeminfo para comprobar todas las funciones de Hyper-V requeridas. Consulta los Requisitos previos para Hyper-V en Windows 10 para obtener más detalles.
Para instalar Hyper-V manualmente, consulta Instalar Hyper-V en Windows 10. Se requiere reiniciar después de la instalación. Si instalas Hyper-V sin reiniciar, Docker Desktop no funcionará correctamente.
Desde el menú de inicio, escribe Activar o desactivar las características de Windows y presiona enter. En la siguiente pantalla, verifica que Hyper-V esté activado.
La virtualización debe estar activada
Además de Hyper-V o
WSL 2, la virtualización debe estar activada. Comprueba la pestaña de Rendimiento en el Administrador de tareas. Alternativamente, puedes escribir systeminfo en tu terminal. Si ves Requisitos de Hyper-V: Se ha detectado un hipervisor. No se mostrarán las características necesarias para Hyper-V, entonces la virtualización está activada.

Si desinstalas manualmente Hyper-V, WSL 2 o desactivas la virtualización, Docker Desktop no podrá iniciarse.
Para activar la virtualización anidada, consulta Ejecutar Docker Desktop para Windows en un entorno de VM o VDI.
Hipervisor activado al inicio de Windows
Si has completado los pasos anteriores y sigues teniendo problemas para iniciar Docker Desktop, esto podría deberse a que el hipervisor está instalado pero no se inicia durante el arranque de Windows. Algunas herramientas (como las versiones antiguas de VirtualBox) y los instaladores de videojuegos desactivan el hipervisor al arrancar. Para volver a activarlo:
- Abre una consola de comandos con privilegios de administrador.
- Ejecuta
bcdedit /set hypervisorlaunchtype auto. - Reinicia Windows.
También puedes consultar el artículo de Microsoft TechNet sobre la configuración de Code flow guard (CFG).
Activar la virtualización anidada
Si estás utilizando Hyper-V y recibes el siguiente mensaje de error al ejecutar Docker Desktop en un entorno VDI:
The Virtual Machine Management Service failed to start the virtual machine 'DockerDesktopVM' because one of the Hyper-V components is not running
Intenta activar la virtualización anidada.
Docker Desktop con contenedores de Windows falla con el mensaje "El medio está protegido contra escritura"
Mensaje de error
FSCTL_EXTEND_VOLUME \\?\Volume{GUID}: The media is write protected
Causa
Si encuentras fallos al ejecutar Docker Desktop con contenedores de Windows, podría deberse a una política de configuración específica de Windows: FDVDenyWriteAccess.
Esta política, cuando está activada, hace que Windows monte todas las unidades fijas que no estén cifradas con BitLocker como de solo lectura. Esto también afecta a los volúmenes de las máquinas virtuales y, como resultado, es posible que Docker Desktop no pueda iniciar o ejecutar contenedores correctamente porque requiere acceso de lectura y escritura a estos volúmenes.
FDVDenyWriteAccess es una configuración de Directiva de grupo de Windows que, cuando está activada, impide el acceso de escritura a las unidades de datos fijas que no están protegidas por BitLocker. Esto se utiliza a menudo en entornos conscientes de la seguridad, pero puede interferir con herramientas de desarrollo como Docker. En el registro de Windows se puede encontrar en HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Policies\Microsoft\FVE\FDVDenyWriteAccess.
Soluciones
Docker Desktop no admite la ejecución de contenedores de Windows en sistemas donde FDVDenyWriteAccess está activada. Esta configuración interfiere con la capacidad de Docker para montar volúmenes correctamente, lo cual es fundamental para el funcionamiento de los contenedores.
Para usar Docker Desktop con contenedores de Windows, asegúrate de que FDVDenyWriteAccess esté desactivada. Puedes verificar y cambiar esta configuración en el registro o a través del Editor de directivas de grupo local (gpedit.msc) en:
Configuración del equipo > Plantillas administrativas > Componentes de Windows > Cifrado de unidad BitLocker > Unidades de datos fijas > Denegar acceso de escritura a unidades fijas no protegidas por BitLocker
NoteLa modificación de la configuración de la Directiva de grupo puede requerir privilegios de administrador y debe cumplir con las políticas de TI de tu organización. Si la configuración se restablece después de un tiempo, esto generalmente significa que fue anulada por la configuración centralizada de tu departamento de TI. Habla con ellos antes de realizar cualquier cambio.
Mensaje de error Docker Desktop Access Denied al iniciar Docker Desktop
Mensaje de error
Al iniciar Docker Desktop, aparece el siguiente error:
Docker Desktop - Access DeniedCausa
El usuario no forma parte del grupo docker-users, el cual es necesario para obtener los permisos correspondientes.
Solución
Si tu cuenta de administrador es diferente de tu cuenta de usuario, agrégala:
- Ejecuta Administración de equipos (Computer Management) como administrador.
- Ve a Usuarios y grupos locales > Grupos > docker-users.
- Haz clic derecho para añadir el usuario al grupo.
- Cierra la sesión y vuelve a iniciarla para que los cambios surtan efecto.