Поправка: Не може да се свърже с Docker Daemon



Опитайте Нашия Инструмент За Премахване На Проблемите

Може да сте много объркани, ако терминал на Linux ви извежда грешка „не може да се свърже с демона на Docker“, защото повече от вероятно демонът на Docker вече работи, когато видите това. Въпреки че ще искате да се уверите, че е така, вероятно ще бъдете озадачени, когато разберете, че тази грешка дори не е свързана с това, че услугата не е стартирана. Най-често се хвърля върху потребители, които не са се добавили в групата на Docker.



Docker издава отделна потребителска група на Linux системи и тези, които имат потребителски акаунти, които не са добавени към нея, няма да могат да се свържат с нея. Имайте предвид, че добавянето на потребителски акаунт към групата на Docker е функционално еквивалентен на root, тъй като демонът винаги работи като root потребител. Това може да се очаква на еднопотребителска система Ubuntu Server, но със сигурност ще има нещо, което трябва да имате предвид за тези, които изпълняват Docker на Arch, Fedora или Debian.



Метод 1: Проверка на състоянието на услугата Docker

Въпреки че е почти сигурно, ще трябва да проверите дали услугата Docker в момента работи. В терминален прозорец стартирайте systemctl статус docker.service като нормален потребител. Трябва да получите информация за това кой PID номер е присвоен на Docker’s demon. Ако не го направите, ще трябва да рестартирате услугата.



Ако сте го рестартирали, опитайте да направите каквото и да е, което ви е довело до грешката „не може да се свърже с демона на Docker“. Ако сега работи, значи просто не сте пуснали услугата и всъщност не е нужно да се притеснявате за нещо друго, освен за причината, поради която не е работила. За съжаление това не работи в повечето случаи, така че ще трябва да продължите напред в тези ситуации.

Метод 2: Добавяне на потребители към групата на Docker

Бягай информация за докер от командния ред, което обикновено ще ви даде грешка „не може да се свърже с демона на Docker“.

Ако случаят е такъв, ще трябва да стартирате sudo groupadd докер; sudo usermod -aG докер $ ПОТРЕБИТЕЛ за да се добавите към подходящата група. Ако това доведе до грешка, защото нямате usermod, тогава можете да промените командата, за да стартирате като sudo groupadd докер; sudo gpasswd -докер за US USER , но това обикновено не би трябвало да е проблем, тъй като повечето дистрибуции на търговски клас Linux работят със същия набор от инструменти. Във всеки случай бягайте newgrp докер за да можете да влезете в новата група докери, ако още не сте.



Имайте предвид, че това винаги ще добавя потребителя, в който сте влезли в момента, което не би трябвало да е голям проблем в системите на повечето хора, които нямат няколко акаунта извън един потребител и основния акаунт. Тъй като засега имате въведен административен достъп, стартирайте sudo chgrp docker / usr / bin docker; sudo chgrp docker /var/run/docker.sock за да коригирате разрешенията за сокета на докер и командата. Обикновено сокетният файл принадлежи само на основния потребител, така че това ще коригира това.

След като го стартирате, не би трябвало да имате проблеми, тъй като сега той принадлежи към същата група, която сте създали в предишната команда. Ще искате да тествате, за да сте сигурни, че докерът работи без sudo, така че напишете docker run hello-world като обикновен потребител, за да сте сигурни, че няма да получавате други грешки.

В този момент много малко потребители все още ще получават някакво съобщение за грешка. Повечето неща трябва да бъдат коригирани в този момент, но ако все още имате проблеми, може да искате да излезете напълно. Опитайте да отворите друг прозорец на емулатора на терминал, но ако това не работи, понякога помага да се спре системата за пълно рестартиране, ако това изобщо е възможно

Метод 3: Използване на ACL за промяна на метаданните на Docker

Ако не искате да принадлежите към група, която ви прави като потребител на root, тогава можете да настроите сокет файла да работи само с определени разрешения. Можете да игнорирате процеса gpasswd, ако предпочитате да го направите по този начин. Налага се да сканирате файловата система за различни записи на ACL в тежест за онези, които извършват одит на сигурността, но това ви пречи да използвате докер групата изцяло.

Ако искате да го направите по този начин, тогава можете да бягате sudo setfacl -m потребител: име: rw /var/run/docker.sock докато заменя потребителя и името със съответните етикети. Това дава разрешение за достъп до сокета на Docker на адрес /var/run/docker.sock, който трябва да работи с Debian и Ubuntu Server.

3 минути четене