"Got permission denied while trying to connect to the Docker daemon socket unix:///var/run/docker.sock" en Ubuntu
08 Jul, 2026 • 7 min de lectura
Acabas de instalar Docker en Ubuntu, ejecutas tu primer docker run hello-world o docker ps, y te encuentras con esto:
Got permission denied while trying to connect to the Docker daemon socket at
unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.51/...":
dial unix /var/run/docker.sock: connect: permission denied
Es probablemente el error más común de todo el ecosistema Docker en Linux, y tiene una explicación muy sencilla: el socket de Docker pertenece al grupo docker, y tu usuario todavía no forma parte de ese grupo.
Contenidos
- Por qué pasa
- La solución correcta (y permanente)
- Verificar que ya funciona
- Por qué NO deberías simplemente usar sudo docker para siempre
- Nota de seguridad importante
- Rootless mode: la alternativa cuando no quieres dar acceso root
- Dos formas de instalar Docker en Ubuntu, y por qué importa cuál elegiste
- Si sigues sin poder tras reiniciar sesión
Por qué pasa
El demonio de Docker (dockerd) corre como root y expone su API a través de un socket Unix en /var/run/docker.sock. Por diseño, ese socket tiene permisos srw-rw---- y pertenece al grupo docker — cualquier usuario que pertenezca a ese grupo puede hablar con el demonio sin necesitar sudo delante de cada comando. Si acabas de instalar Docker (vía apt install docker.io o el script oficial get.docker.com), tu usuario normal todavía no está en ese grupo, así que cada llamada al socket es rechazada.
Puedes confirmarlo tú mismo:
ls -l /var/run/docker.sock
srw-rw---- 1 root docker 0 jul 8 14:02 /var/run/docker.sock
Y comprobar a qué grupos perteneces:
groups $USER
Si docker no aparece en la lista, ahí está la causa confirmada.
La solución correcta (y permanente)
sudo groupadd docker 2>/dev/null # por si el grupo no existiera aún
sudo usermod -aG docker $USER
Importante: este cambio no se aplica a la sesión de shell actual. Linux solo relee los grupos de un usuario al iniciar una nueva sesión de login. Tienes tres opciones para que surta efecto:
- Cerrar sesión y volver a entrar (la más limpia).
- Reiniciar el equipo.
- Aplicar el cambio de grupo solo a la terminal actual, sin reiniciar sesión, con:
newgrp docker
newgrp docker abre una subshell con el grupo docker ya activo — funciona perfecto para probar rápido, pero solo afecta a esa terminal; las demás pestañas o ventanas que ya tuvieras abiertas seguirán sin el permiso hasta que reinicies sesión.
Verificar que ya funciona
docker run hello-world
Si ves el mensaje “Hello from Docker!” sin que te pida contraseña ni te lance el error de permisos, está resuelto.
Por qué NO deberías simplemente usar sudo docker para siempre
Una alternativa tentadora es anteponer sudo a cada comando de Docker y olvidarte del grupo. Funciona, pero tiene dos problemas reales:
-
Es tedioso — cada
docker-compose up, cada script, cada alias tendría que llevarsudodelante, y es fácil que olvides ponerlo justo en el comando que sí importa. -
Rompe herramientas que hablan directamente con el socket — extensiones de IDE, Docker Desktop-like tools, o cualquier script en Python/Node que use la librería cliente de Docker fallarán igualmente si tu usuario no está en el grupo, porque muchas de estas herramientas no invocan
sudointernamente.
Añadir tu usuario al grupo docker es el flujo soportado oficialmente por Docker Inc. para uso en máquinas de desarrollo — no es un “hack”.
Nota de seguridad importante
Pertenecer al grupo docker es funcionalmente equivalente a tener acceso root sin restricciones en la máquina. Cualquier usuario en ese grupo puede montar el sistema de archivos raíz dentro de un contenedor privilegiado y escapar a root:
docker run -v /:/host -it alpine chroot /host
Esto no es un problema en tu portátil de desarrollo personal, pero no añadas usuarios al grupo docker en servidores compartidos o multiusuario sin ser consciente de esta implicación. En esos entornos, es mejor usar sudo docker explícitamente, o herramientas como rootless mode de Docker, que ejecutan el demonio sin privilegios de root.
Rootless mode: la alternativa cuando no quieres dar acceso root
Si el escenario de seguridad anterior te preocupa y tu caso de uso lo permite, Docker ofrece un modo de instalación completamente distinto llamado rootless mode, donde el propio demonio corre con los privilegios de tu usuario normal, sin necesidad de grupo docker ni de root en ningún punto de la cadena:
curl -fsSL https://get.docker.com/rootless | sh
Las contrapartidas: algunas funcionalidades avanzadas de red y ciertos casos de montaje de volúmenes tienen limitaciones en rootless mode que no existen en la instalación estándar, así que no es un reemplazo directo en el 100% de los casos — pero para desarrollo local en máquinas donde la seguridad es una preocupación real, es la alternativa más sólida a simplemente añadir tu usuario al grupo docker.
Dos formas de instalar Docker en Ubuntu, y por qué importa cuál elegiste
El error de permisos de este artículo puede aparecer con cualquiera de las dos formas más comunes de instalar Docker en Ubuntu, pero vale la pena saber cuál usaste porque afecta a otros comportamientos del sistema:
-
apt install docker.io: el paquete que mantiene el propio repositorio de Ubuntu. Suele ir una o dos versiones por detrás de la última versión de Docker Engine, pero se actualiza junto con el resto del sistema víaapt upgrade. -
Script oficial
get.docker.com(o el repositorio oficial de Docker añadido manualmente): instala siempre la versión más reciente de Docker Engine, pero requiere que gestiones las actualizaciones de ese repositorio por separado del resto deapt.
En ambos casos, el grupo docker se crea automáticamente durante la instalación, así que la solución de este artículo (usermod -aG docker $USER) aplica exactamente igual sea cual sea la vía que usaste.
Si sigues sin poder tras reiniciar sesión
En casos raros, sobre todo en WSL2 o en instalaciones con snap, el problema persiste incluso tras el usermod y reiniciar sesión. Revisa estos dos puntos adicionales:
# 1. Confirma que el servicio realmente está activo
sudo systemctl status docker
# 2. Confirma que el grupo se aplicó de verdad a tu sesión actual
id | grep docker
Si id no muestra el grupo docker después de reiniciar sesión, el problema normalmente está en cómo tu gestor de sesiones (o WSL) está cacheando los grupos del usuario — un reinicio completo del equipo (no solo cerrar sesión) suele resolverlo definitivamente.
Una vez tengas Docker funcionando sin problemas de permisos, si con el tiempo empiezas a quedarte sin espacio en disco por acumulación de imágenes y contenedores, cubrimos ese problema específico (y sus riesgos) en “docker system prune” vs “docker volume prune”: solución definitiva.
Te podría interesar
-
Ubuntu no aparece en el menú de arranque tras instalar junto a Windows 11: "grub-install error" solución
Has instalado Ubuntu junto a Windows 11 en dual boot, el instalador ha terminado sin errores visibles, pero al reiniciar el ordenador arranca directo a...
-
Ubuntu 24.04 wifi no funciona tras actualizar: "iwlwifi failed to load firmware" solución
Si acabas de actualizar a Ubuntu 24.04 (o has hecho un apt upgrade que ha tocado el kernel) y de repente el wifi ha desaparecido,...
-
Docker Swarm contenedor php-fpm infectado 100% CPU
Cómo Arreglar Docker Swarm Infectado con Malware PHP-FPM
-
No se puede montar DATOS, Ubuntu 24.04, Error mounting /dev/sdc1 at /media/raul/DATOS1: mount(2) system call failed: No such file or directory
No puedo montar mi unidad DATOS en Ubuntu 24.04
-
Python3 netplan en Ubuntu, qué es y cuando se utiliza
Netplan