Remediere: nu se poate conecta la demonul Docker



Încercați Instrumentul Nostru Pentru Eliminarea Problemelor

S-ar putea să fii foarte confuz dacă un terminal Linux îți aruncă o eroare „nu se poate conecta la demonul Docker”, deoarece mai mult ca sigur demonul Docker rulează deja când vezi asta. Deși veți dori să vă asigurați că este, probabil că veți fi nedumerit atunci când veți afla că această eroare nu are nici măcar legătură cu faptul că serviciul nu este pornit. În cea mai mare parte este aruncat către utilizatorii care nu s-au adăugat la grupul Docker.



Docker emite un grup de utilizatori separat pe sistemele Linux și cei care au conturi de utilizator care nu sunt adăugate la acesta nu se vor putea conecta la acesta. Rețineți că adăugarea unui cont de utilizator la grupul Docker este echivalent funcțional root, deoarece demonul rulează întotdeauna ca utilizator root. Acest lucru ar putea fi de așteptat pentru un sistem Ubuntu Server cu un singur utilizator, dar va fi cu siguranță ceva de reținut pentru cei care rulează Docker pe Arch, Fedora sau Debian.



Metoda 1: Verificarea stării serviciului Docker

Deși aproape sigur este, va trebui să verificați dacă serviciul Docker rulează în prezent. La o fereastră terminal, rulați systemctl status docker.service ca utilizator normal. Ar trebui să obțineți câteva informații despre numărul PID care a fost atribuit demonul Docker. În caz contrar, va trebui să reporniți serviciul.



Dacă l-ați repornit, încercați să faceți tot ceea ce v-a aruncat eroarea „Nu se poate conecta la demonul Docker”. Dacă acum funcționează, atunci nu ați avut serviciul în funcțiune și nu trebuie să vă faceți griji cu privire la altceva în afară de motivul pentru care nu a funcționat. Din păcate, acest lucru nu funcționează în majoritatea cazurilor, deci va trebui să mergeți mai departe în aceste situații.

Metoda 2: Adăugarea utilizatorilor în grupul Docker

Alerga informații despre andocare din linia de comandă, care vă va oferi în mod normal eroarea „nu se poate conecta la demonul Docker” încă o dată.

Dacă acesta este cazul, va trebui să alergi sudo groupadd docker; sudo usermod -aG docker $ USER pentru a te adăuga la grupul potrivit. În cazul în care acest lucru va da o eroare deoarece nu aveți un mod de utilizator, atunci puteți modifica comanda pentru a rula ca sudo groupadd docker; sudo gpasswd -a $ USER docker , dar în general acest lucru nu ar trebui să fie o problemă, deoarece majoritatea distribuțiilor Linux de nivel comercial funcționează cu același set de instrumente. În orice caz, fugiți newgrp docker astfel încât să vă puteți conecta la noul grup de andocare, dacă nu sunteți deja.



Rețineți că acest lucru va adăuga întotdeauna utilizatorul la care sunteți conectat în prezent, ceea ce nu ar trebui să constituie o problemă prea mare pe sistemele celor mai mulți oameni care nu au mai multe conturi decât un singur utilizator și contul rădăcină. Deoarece aveți acces administrativ introdus pentru moment, rulați sudo chgrp docker / usr / bin docker; sudo chgrp docker /var/run/docker.sock pentru a remedia permisiunile de pe soclul și comanda de andocare. De obicei, fișierul socket aparține doar utilizatorului root, deci acest lucru va corecta acest lucru.

După ce l-ați rulat, nu ar trebui să aveți probleme, deoarece acum aparține aceluiași grup pe care l-ați creat în comanda anterioară. Veți dori să testați pentru a vă asigura că docker-ul rulează fără sudo, totuși, așa că tastați docker run hello-world ca utilizator obișnuit pentru a vă asigura că nu primiți alte erori.

În acest moment, foarte puțini utilizatori vor primi în continuare orice fel de mesaj de eroare. Majoritatea lucrurilor ar trebui corectate în acest moment, dar dacă aveți în continuare probleme, vă recomandăm să vă deconectați complet. Încercați să deschideți o altă fereastră a emulatorului de terminal, dar dacă acest lucru nu funcționează, uneori vă ajută să dați jos sistemul pentru o repornire completă, dacă este posibil.

Metoda 3: Utilizarea ACL-urilor pentru a modifica metadatele Docker

Dacă nu doriți să aparțineți unui grup care vă face ca un utilizator root, atunci puteți seta fișierul socket să funcționeze numai cu anumite permisiuni. Puteți ignora procesul gpasswd dacă preferați să faceți acest lucru. Trebuie să scanați sistemul de fișiere pentru diferite intrări ACL într-o povară pentru cei care fac un audit de securitate, dar vă împiedică să utilizați în întregime grupul de andocare.

Dacă doriți să faceți acest lucru, atunci puteți alerga sudo setfacl -m utilizator: nume: rw /var/run/docker.sock în timp ce înlocuiți utilizatorul și numele cu etichetele corespunzătoare. Acest lucru acordă permisiunea de a accesa soclul Docker la /var/run/docker.sock, care ar trebui să funcționeze cu Debian și Ubuntu Server.

3 minute citite