Исправлено: не удается подключиться к Docker Daemon —

Вы можете быть очень смущены, если терминал Linux выдает сообщение об ошибке «не удается подключиться к демону Docker», поскольку, скорее всего, демон Docker уже запущен, когда вы это видите. Хотя вы хотите убедиться, что это так, вы, вероятно, будете озадачены, когда обнаружите, что эта ошибка даже не связана с тем, что служба не запускается. В основном это бросается на пользователей, которые не добавили себя в группу Docker.

Docker создает отдельную группу пользователей в системах Linux, и те, у кого есть учетные записи, которые не добавлены в нее, не смогут подключиться к ней. Имейте в виду, что добавление учетной записи пользователя в группу Docker является функционально эквивалентным пользователю root, поскольку демон всегда работает от имени пользователя root. Этого можно ожидать в однопользовательской системе Ubuntu Server, но это, безусловно, следует учитывать тем, кто работает с Docker в Arch, Fedora или Debian.

Способ 1: проверка статуса службы Docker

Хотя это почти наверняка так, вам нужно проверить, работает ли в данный момент служба Docker. В окне терминала запустите systemctl status docker.service как обычный пользователь. Вы должны получить некоторую информацию о том, какому номеру PID назначен демон Docker. Если вы этого не сделаете, то вам придется перезапустить службу.

Если вы перезапустили его, попробуйте сделать все, что вызвало ошибку «не может подключиться к Docker». Если он теперь работает, значит, у вас просто не было запущено сервиса, и вам не нужно беспокоиться ни о чем другом, кроме причины, по которой он не работал. К сожалению, это не работает в большинстве случаев, поэтому вам придется двигаться дальше в таких ситуациях.

Способ 2: добавление пользователей в группу Docker

Бежать информация о докере из командной строки, которая обычно выдает ошибку «невозможно подключиться к демону Docker» еще раз.

Если это так, то вам нужно будет запустить судо groupadd докер; sudo usermod -aG docker $ USER добавить себя в соответствующую группу. Если это приведет к ошибке, поскольку у вас нет usermod, вы можете изменить команду для запуска как судо groupadd докер; sudo gpasswd -a $ USER docker, но, как правило, это не должно быть проблемой, поскольку большинство дистрибутивов Linux коммерческого уровня работают с одним и тем же набором инструментов. В любом случае беги докер newgrp так что вы можете войти в новую группу Docker, если вы еще этого не сделали.

Имейте в виду, что это всегда добавит пользователя, под которым вы в данный момент вошли, что не должно быть слишком большой проблемой для большинства систем, в которых нет нескольких учетных записей, кроме одного пользователя и корневой учетной записи. Поскольку у вас есть доступ с правами администратора, введите sudo chgrp docker / usr / bin docker; Докер sudo chgrp /var/run/docker.sock исправить права доступа к сокету и команде докера. Обычно файл сокета принадлежит только пользователю root, так что это исправит это.

После его запуска у вас не должно возникнуть никаких проблем, поскольку теперь он принадлежит к той же группе, которую вы создали в предыдущей команде. Вы хотите протестировать, чтобы убедиться, что докер работает без sudo, поэтому введите Докер запустить Привет-мир как обычный пользователь, чтобы убедиться, что вы не получаете никаких других ошибок.

На данный момент очень немногие пользователи будут по-прежнему получать сообщения об ошибках любого рода. На этом этапе большинство вещей следует исправить, но если у вас все еще есть проблемы, вы можете полностью выйти из системы. Попробуйте открыть другое окно эмулятора терминала, но если это не сработает, иногда помогает завершить работу системы для полного перезапуска, если это вообще возможно

Метод 3: Использование ACL для изменения метаданных Docker

Если вы не хотите принадлежать к группе, которая делает вас похожим на пользователя root, то вы можете настроить файл сокета для работы только с определенными разрешениями. Вы можете игнорировать процесс gpasswd, если предпочитаете делать это таким образом. Необходимость сканировать файловую систему на предмет различных записей ACL — это бремя для тех, кто проводит аудит безопасности, но это не позволяет вам полностью использовать группу докеров.

Если вы хотите сделать это таким образом, то вы можете запустить sudo setfacl -m пользователь: имя: rw /var/run/docker.sock при замене имени пользователя и имени соответствующими метками. Это дает разрешение на доступ к сокету Docker по адресу /var/run/docker.sock, который должен работать с Debian и Ubuntu Server.

Ссылка на основную публикацию
Adblock
detector