Inicio » Cómo solucionar el error 'Permission Denied' en /var/run/docker.sock sin Sudo
Sistemas y Servidores

Cómo solucionar el error 'Permission Denied' en /var/run/docker.sock sin Sudo

✨ Respuesta Rápida

El mensaje permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock aparece cuando intentas ejecutar comandos de Docker sin privilegios de superusuario (sudo) y tu cuenta de Linux no pertenece al grupo con acceso al socket UNIX del demonio de Docker.

El mensaje permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock aparece cuando intentas ejecutar comandos de Docker sin privilegios de superusuario (sudo) y tu cuenta de Linux no pertenece al grupo con acceso al socket UNIX del demonio de Docker.

El Diagnóstico Rápido

Causa
Permission Denied al conectar con el socket (unix:///var/run/docker.sock): El usuario actual no pertenece al grupo de sistema docker
Solución
Agregar el usuario al grupo docker con usermod y refrescar la sesión

La Solución Paso a Paso

  1. 1

    Paso 1: Crear el grupo docker y agregar tu usuario

    Comprueba si el grupo docker existe en tu sistema y agrega tu usuario actual a dicho grupo mediante usermod:

    BASH
    # Crear el grupo docker si no existe
    sudo groupadd docker
    
    # Agregar el usuario actual ($USER) al grupo docker
    sudo usermod -aG docker $USER
    
  2. 2

    Paso 2: Actualizar la membresía de grupos en la sesión activa

    Para que el cambio de grupo surta efecto sin necesidad de reiniciar el servidor o cerrar sesión por completo, ejecuta:

    BASH
    newgrp docker
    

    Alternativamente, si estás en una sesión SSH o terminal de escritorio, puedes cerrar la sesión y volver a iniciarla.

  3. 3

    Paso 3: Verificar los permisos de /var/run/docker.sock y probar

    Asegúrate de que el archivo de socket /var/run/docker.sock pertenezca al grupo docker:

    BASH
    ls -l /var/run/docker.sock
    

    (Debería mostrar un propietario como root:docker con permisos srw-rw----).

    Prueba la ejecución de Docker sin anteponer sudo:

    BASH
    docker run hello-world
    

Consejo de Prevención

Prácticas de seguridad recomendadas:

  • Evitar el uso de chmod 777 en el socket: Nunca otorgues permisos de lectura/escritura globales a /var/run/docker.sock, ya que expondrías todo el servidor anfitrión a riesgos de seguridad graves.
  • Evaluar Docker en modo sin raíz (Rootless Mode): En entornos de producción críticos, considera utilizar Rootless Docker para ejecutar el demonio y los contenedores dentro de un espacio de nombres de usuario sin privilegios de root.
  • Revisar scripts de CI/CD: Asegúrate de que los agentes de integración continua (Jenkins, GitLab Runner, GitHub Actions runner) pertenezcan al grupo docker en la máquina anfitriona.
Autor • Diseñador Web & Creador de Apps

Rodolfo Castro

Diseñador web, creador de aplicaciones y fundador de SoporteCero. Especialista en desarrollo de productos digitales, interfaz de usuario y arquitectura web. Cada tutorial y solución de SoporteCero es reproducido y verificado en laboratorio técnico para ofrecer guías funcionales y actualizadas.