Solución: no se puede conectar al demonio de Docker



Pruebe Nuestro Instrumento Para Eliminar Los Problemas

Es posible que se sienta muy confundido si una terminal de Linux le arroja un error de 'no se puede conectar al demonio de Docker', porque lo más probable es que el demonio de Docker ya se esté ejecutando cuando lo vea. Si bien querrá asegurarse de que lo sea, probablemente se sorprenderá cuando descubra que este error ni siquiera tiene que ver con que el servicio no se haya iniciado. En su mayoría, se lanza a los usuarios que no se han agregado al grupo de Docker.



Docker emite un grupo de usuarios separado en los sistemas Linux, y aquellos que tienen cuentas de usuario que no se agregan a él no podrán conectarse a él. Tenga en cuenta que agregar una cuenta de usuario al grupo de Docker es funcionalmente equivalente a root ya que el demonio siempre se ejecuta como usuario root. Esto podría esperarse en un sistema Ubuntu Server de un solo usuario, pero sin duda será algo a tener en cuenta para aquellos que ejecutan Docker en Arch, Fedora o Debian.



Método 1: comprobar el estado del servicio de Docker

Si bien es casi seguro que lo esté, deberá verificar si el servicio Docker se está ejecutando actualmente. En una ventana de terminal, ejecuta systemctl status docker.service como usuario normal. Debería obtener información sobre qué número PID se asignó al demonio de Docker. Si no es así, deberá reiniciar el servicio.



Si lo ha reiniciado, intente hacer lo que sea que le arrojó el error 'No se puede conectar al demonio de Docker'. Si ahora funciona, entonces simplemente no tenía el servicio en ejecución y realmente no necesita preocuparse por nada más que la razón por la que no se estaba ejecutando. Desafortunadamente, esto no funciona en la mayoría de los casos, por lo que deberá seguir adelante en esas situaciones.

Método 2: agregar usuarios al grupo de Docker

correr información de docker desde la línea de comando, que normalmente le dará el error 'No se puede conectar al demonio de Docker' una vez más.

Si este es el caso, deberá ejecutar sudo groupadd docker; sudo usermod -aG docker $ USER para agregarse al grupo adecuado. Si esto da un error porque no tiene usermod, entonces puede modificar el comando para que se ejecute como sudo groupadd docker; sudo gpasswd -a $ USER ventana acoplable , pero esto generalmente no debería ser un problema porque la mayoría de las distribuciones de Linux de nivel comercial funcionan con el mismo conjunto de herramientas. En cualquier caso, corre ventana acoplable newgrp para que pueda iniciar sesión en el nuevo grupo de Docker si aún no lo ha hecho.



Tenga en cuenta que esto siempre agregará el usuario con el que está conectado actualmente, lo que no debería ser un gran problema en la mayoría de los sistemas de las personas que no tienen varias cuentas más allá del usuario y la cuenta raíz. Dado que tiene acceso administrativo tecleado por el momento, ejecute sudo chgrp docker / usr / bin docker; sudo chgrp docker /var/run/docker.sock para corregir los permisos en el conector de la ventana acoplable y el comando. Por lo general, el archivo de socket pertenece solo al usuario root, por lo que esto lo corregirá.

Después de haberlo ejecutado, no debería tener ningún problema porque ahora pertenece al mismo grupo que había creado en el comando anterior. Sin embargo, querrá probar para asegurarse de que la ventana acoplable se ejecute sin sudo, así que escriba Docker ejecutar hello-world como usuario habitual para asegurarse de no recibir ningún otro error.

En este punto, muy pocos usuarios seguirán recibiendo algún tipo de mensaje de error. La mayoría de las cosas deben corregirse en este punto, pero si aún tiene problemas, es posible que desee cerrar la sesión por completo. Intente abrir otra ventana del emulador de terminal, pero si esto no funciona, a veces ayuda a apagar el sistema para un reinicio completo si es posible.

Método 3: uso de ACL para modificar metadatos de Docker

Si no desea pertenecer a un grupo que lo convierte en un usuario root, puede configurar el archivo de socket para que funcione solo con ciertos permisos. Puede ignorar el proceso gpasswd si prefiere hacerlo de esta manera. Tener que escanear el sistema de archivos en busca de diferentes entradas de ACL es una carga para quienes realizan una auditoría de seguridad, pero evita que tenga que usar el grupo de Docker por completo.

Si desea hacerlo de esta manera, puede ejecutar sudo setfacl -m usuario: nombre: rw /var/run/docker.sock mientras se reemplaza el usuario y el nombre con las etiquetas adecuadas. Esto otorga permiso para acceder al socket de Docker en /var/run/docker.sock, que debería funcionar con Debian y Ubuntu Server.

3 minutos de lectura