Solució: no es pot connectar al dimoni Docker



Proveu El Nostre Instrument Per Eliminar Problemes

Pot ser que estigueu molt confús si un terminal Linux us produeix un error 'no es pot connectar al dimoni Docker', perquè és molt probable que el dimoni Docker ja s'estigui executant quan ho vegeu. Tot i que voldreu assegurar-vos que ho sigui, probablement us sorprendrà quan descobriu que aquest error no té ni a veure amb que el servei no s’iniciï. Sobretot es llença als usuaris que no s’han afegit al grup Docker.



Docker emet un grup d'usuaris independent als sistemes Linux i els que tinguin comptes d'usuari que no s'hi afegeixin no podran connectar-s'hi. Tingueu en compte que afegir un compte d'usuari al grup Docker és funcionalment equivalent a root ja que el dimoni sempre s'executa com a usuari root. Això es podria esperar en un sistema Ubuntu Server amb un sol usuari, però sens dubte serà una cosa a tenir en compte per a aquells que executin Docker a Arch, Fedora o Debian.



Mètode 1: comprovació de l'estat del servei de Docker

Tot i que segur que ho és, haureu de comprovar si el servei Docker s’està executant actualment. En una finestra del terminal, executeu systemctl status docker.service com a usuari normal. Hauríeu d’obtenir informació sobre quin número PID s’ha assignat el dimoni de Docker. Si no ho feu, haureu de reiniciar el servei.



Si l'heu reiniciat, proveu de fer el que sigui el que us hagi provocat l'error 'No es pot connectar al dimoni Docker'. Si ara funciona, aleshores no teníeu el servei en funcionament i realment no us heu de preocupar de res més que el motiu pel qual no s’estava executant. Malauradament, això no funciona en la majoria dels casos, de manera que haureu de seguir endavant en aquestes situacions.

Mètode 2: afegir usuaris al grup Docker

Correr informació del portador des de la línia d'ordres, que normalment us donarà l'error 'no es pot connectar al dimoni Docker' una vegada més.

Si aquest és el cas, caldrà córrer sudo groupadd docker; sudo usermod -aG docker $ USER per afegir-se al grup adequat. Si això provoca un error perquè no teniu un mod d’usuari, podeu modificar l’ordre perquè s’executi com a sudo groupadd docker; sudo gpasswd -a $ USER acoblador , però generalment no hauria de ser un problema perquè la majoria de distribucions Linux de nivell comercial funcionen amb el mateix conjunt d’eines. En qualsevol cas, corre acoblador newgrp de manera que pugueu iniciar la sessió al nou grup d'acoblament si encara no ho esteu.



Tingueu en compte que sempre s’afegirà l’usuari al qual heu iniciat la sessió, cosa que no hauria de suposar un problema excessiu a la majoria de sistemes de persones que no tenen diversos comptes més enllà d’un usuari i d’un compte arrel. Com que de moment disposeu d'accés administratiu, executeu sudo chgrp docker / usr / bin docker; sudo chgrp docker /var/run/docker.sock per corregir els permisos al sòcol i l'ordre de la base. Normalment, el fitxer de sòcol pertany només a l'usuari root, de manera que això ho corregirà.

Després d’haver-lo executat, no hauríeu de tenir problemes perquè ara pertany al mateix grup que havíeu creat a l’ordre anterior. Tanmateix, voldreu provar per assegurar-vos que el docker s’executa sense sudo, així que escriviu docker run hola-world com a usuari habitual per assegurar-vos que no rebeu cap altre error.

En aquest moment, molt pocs usuaris encara rebran cap tipus de missatge d'error. La majoria de coses s’han de corregir en aquest moment, però si encara teniu problemes, potser voldreu tancar la sessió completament. Proveu d'obrir una altra finestra de l'emulador de terminal, però si això no funciona, de vegades ajudeu a baixar el sistema per reiniciar-lo completament, si és possible

Mètode 3: utilitzar ACL per modificar les metadades de Docker

Si no voleu pertànyer a un grup que us agradi com a usuari root, podeu configurar el fitxer de sòcol perquè funcioni només amb determinats permisos. Podeu ignorar el procés gpasswd si preferiu fer-ho d’aquesta manera. Haver d’escanejar el sistema de fitxers per trobar diferents entrades ACL en una càrrega per a aquells que fan una auditoria de seguretat, però impedeix haver d’utilitzar completament el grup d’acoblament.

Si voleu fer-ho d’aquesta manera, podeu córrer sudo setfacl -m usuari: nom: rw /var/run/docker.sock mentre substituïu l'usuari i el nom per les etiquetes adequades. Això concedeix permís per accedir al sòcol Docker a /var/run/docker.sock, que hauria de funcionar amb Debian i Ubuntu Server.

3 minuts de lectura