Oprava: Nedá sa pripojiť k Docker Daemon



Vyskúšajte Náš Nástroj Na Odstránenie Problémov

Možno budete veľmi zmätení, ak na vás terminál Linux hodí chybu „nemôže sa pripojiť k démonovi Docker“, pretože Démon Docker už je pravdepodobne spustený, keď to uvidíte. Aj keď sa budete chcieť uistiť, že je to tak, pravdepodobne budete na rozpakoch, keď zistíte, že táto chyba nemusí mať spoločné so spustením služby. Väčšinou sa to hodí na používateľov, ktorí sa nepridali do skupiny Docker.



Docker vydáva samostatnú skupinu používateľov v systémoch Linux a tí, ktorí majú používateľské účty, ktoré do nej nie sú pridané, sa k nej nebudú môcť pripojiť. Pamätajte, že pridanie používateľského konta do skupiny Docker je funkčne ekvivalentné s rootom, pretože démon je vždy spustený ako root. To by sa dalo očakávať na systéme Ubuntu Server pre jedného používateľa, ale určite bude treba mať na pamäti tých, ktorí používajú Docker na Arche, Fedore alebo Debiane.



Metóda 1: Kontrola stavu služby Docker

Aj keď to takmer určite je, budete musieť skontrolovať, či je služba Docker momentálne spustená. V okne terminálu spustite systemctl status docker.service ako bežný užívateľ. Mali by ste získať nejaké informácie o tom, ktoré PID číslo dostal Dockerov démon priradené. Ak tak neurobíte, budete musieť službu reštartovať.



Ak ste ho reštartovali, skúste urobiť čokoľvek, čo vám spôsobilo chybu „nemôže sa pripojiť k démonovi Dockera“. Ak to teraz funguje, jednoducho ste službu nemali spustenú a okrem toho, že nefungovala, sa nemusíte starať o nič iné. Bohužiaľ to vo väčšine prípadov nefunguje, takže v týchto situáciách budete musieť pokračovať.

Metóda 2: Pridanie používateľov do skupiny Docker

Bež docker info z príkazového riadku, ktorý vám za normálnych okolností znova zobrazí chybu „nemôže sa pripojiť k démonovi Dockera“.

Ak je to váš prípad, budete musieť bežať sudo groupadd docker; sudo usermod -aG docker $ USER pridať sa do správnej skupiny. Ak by to spôsobilo chybu, pretože nemáte usermod, môžete upraviť príkaz tak, aby fungoval ako sudo groupadd docker; sudo gpasswd -a $ USER ukotviteľný panel , ale to by nemal byť problém, pretože väčšina komerčných distribúcií Linuxu pracuje s rovnakou sadou nástrojov. V každom prípade utekajte newgrp docker takže sa môžete prihlásiť do novej skupiny ukotvenia, ak ešte nie ste.



Nezabúdajte, že týmto vždy pridáte používateľa, pod ktorým ste momentálne prihlásení, čo by nemal byť príliš veľkým problémom v systémoch väčšiny ľudí, ktorí nemajú viac účtov okrem jedného používateľa a účtu root. Pretože máte zatiaľ zadaný administratívny prístup, spustite sudo chgrp docker / usr / bin docker; sudo chgrp docker /var/run/docker.sock opraviť povolenia na dokovacej stanici a príkazu. Súbor soketu zvyčajne patrí iba používateľovi root, čo to napraví.

Po jeho spustení by ste nemali mať žiadne problémy, pretože teraz patria do rovnakej skupiny, ktorú ste vytvorili v predchádzajúcom príkaze. Budete však chcieť vyskúšať, či sa ukotviteľný panel spúšťa bez sudo, takže zadajte docker bežať ahoj-svet ako bežný používateľ, aby ste sa uistili, že sa vám nezobrazujú ďalšie chyby.

V tomto okamihu bude veľmi málo používateľov stále dostávať akékoľvek chybové hlásenia. Väčšina vecí by sa mala opraviť v tomto okamihu. Ak však stále máte problémy, môžete sa úplne odhlásiť. Skúste otvoriť ďalšie okno emulátora terminálu, ale ak to nefunguje, niekedy to pomôže zastaviť systém na úplné reštartovanie, ak je to vôbec možné

Metóda 3: Používanie ACL na úpravu metadát Dockeru

Ak nechcete patriť do skupiny, vďaka ktorej sa vám páči používateľ typu root, môžete nastaviť súbor soketu tak, aby fungoval iba s určitými povoleniami. Proces gpasswd môžete ignorovať, ak to chcete urobiť radšej. To, že musíte prehľadať systém súborov, či neobsahujú rôzne položky ACL, čo je záťažou pre tých, ktorí vykonávajú bezpečnostný audit, ale to vám zabráni v tom, aby ste museli úplne používať skupinu ukotvenia.

Ak to chcete urobiť týmto spôsobom, môžete bežať sudo setfacl -m užívateľ: meno: rw /var/run/docker.sock a zároveň nahradiť používateľa a meno príslušnými štítkami. Týmto sa udeľuje povolenie na prístup k zásuvke Docker na adrese /var/run/docker.sock, ktorá by mala fungovať so servermi Debian a Ubuntu Server.

3 minúty prečítané