[FIX] Не удается подключиться к демону Docker по адресу unix: ///var/run/docker.sock
Docker становится все более популярным благодаря своей способности легко создавать, развертывать и запускать приложения с использованием контейнеров. Контейнеры позволяют разработчикам упаковать приложение со всеми его библиотеками и зависимостями перед его развертыванием в виде одного полного пакета. Установить Docker в Linux относительно просто. Все, что вам нужно сделать, это запустить пару команд в Терминале, и все готово.
Ошибка подключения докера
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Однако это может быть не одинаково для всех пользователей даже после успешной установки. Одна из наиболее частых возникающих ошибок: не удается подключиться к демону Docker в (unix: ///var/run/docker.sock. Работает ли демон docker?) Эта ошибка может возникнуть при выполнении различных команд докеров, таких как docker run, информация о докере, вытягивание докера, остановка докера и т. д.
Что вызывает ошибку: не удается подключиться к демону Docker?
Получив многочисленные жалобы разработчиков, мы решили погрузиться в поиск эффективных решений. Некоторые из причин, вызывающих эту ошибку, включают:
- Демон Docker не запущен.
- Докер не завершает работу чисто.
- Отсутствие root-прав для запуска службы докеров.
Теперь, когда у вас есть базовое представление о причине проблемы, давайте рассмотрим различные доступные вам решения.
Решение 1. Запустите службу Docker с помощью systemctl
Если вы только что завершили новую установку Docker на Ubuntu или перезагрузили компьютер, высока вероятность того, что служба Docker не запущена. Docker daemon (dockerd) – системная служба для Docker. Эта служба обрабатывает различные объекты Docker, такие как изображения, контейнеры, сети и тома, и слушает запросы Docker API.
Команда Systemctl пришла на смену старой системе инициализации SysV и управляет службами systemd, работающими в системах Linux. Если в вашей системе нет systemctl, не волнуйтесь; используйте служебную команду, как описано ниже.
Примечание. Этот метод работает только для пользователей, которые установили Docker с помощью диспетчера пакетов APT. Если вы установили Docker через SNAP, см. Решение 5 ниже.
- Откройте Терминал и выполните первую команду – демаскировать докер.
sudo systemctl демаскировать докер
Если мы попытаемся запустить службу докеров, когда докер замаскирован, мы можем столкнуться с ошибкой «Не удалось запустить docker.service: модуль замаскирован». Маску можно считать более надежным вариантом отключения. Когда файл модуля замаскирован, модуль связывается с dev / null. Вы можете просмотреть состояние всех файлов модуля с помощью команды – ‘$ systemctl list-unit-files’
2. После того, как модуль докера разоблачен, мы можем запустить демон докера с помощью команды systemctl. Демон докера управляет такими объектами докеров, как изображения, контейнеры и запросы Docker API. Выполните приведенную ниже команду в командной строке.
systemctl запустить докерЗапустить службу Docker
3. Проверить, активна ли и работает ли служба докеров. Мы будем использовать команду systemctl status, которая показывает текущий статус конкретной службы. Выполните приведенную ниже команду на своем Терминале.
Докер состояния systemctlСтатус службы Docker
На изображении выше мы видим, что докер активен и работает.
Решение 2. Удалите ошибку при извлечении Docker и запустите службу Docker.
Бывают случаи, когда вы можете неожиданно закрыть Docker при извлечении контейнера. Такие ситуации будут маскировать файлы docker.service и docker .socket. Docker.socket – это файл, расположенный в ‘/var/run/docker.sock’ и используемый для связи с демоном Docker. Нам нужно будет демаскировать файлы, состоящие из двух модулей – docker .service и docker.daemon, прежде чем приступить к запуску docker.
- Запустите Терминал и выполните следующие команды:
systemctl unmask docker.service systemctl unmask docker.socket systemctl start docker.serviceЗапустить службу Docker
Если вы все еще испытываете ошибку даже после выполнения приведенных ниже команд, нам нужно будет удалить файлы в каталоге Containerd перед повторным запуском Docker. Containerd – это функция, представленная в Docker 1.11, которая используется для управления жизненным циклом образов Docker.
2. Откройте Терминал и выполните приведенные ниже команды. Убедитесь, что вы знаете пароль root, поскольку нам потребуются повышенные привилегии для выполнения команд.
sudo su service docker stop cd / var / run / docker / libcontainerd rm -rf containerd / * rm -f docker-containerd.pid запуск докера службыПерезапустить службу докеров
Решение 3. Запустите службу Dockerd (Docker Daemon)
Dockerd – это демон Docker, который слушает API-интерфейсы Docker и управляет различными объектами Docker. Dockerd можно использовать как альтернативу команде $ systemctl start docker, которая также используется для запуска демона Docker.
- Откройте Терминал и запустите dockerd, выполнив следующую команду:
sudo dockerdЗапустить dockerd
Решение 4. Запустите Docker с помощью команды Service
Если вы используете систему инициализации SysV, то команда systemctl вам не подойдет. Нам нужно будет использовать служебную команду для запуска демона докера.
- запустите Терминал и выполните следующие команды:
sudo service –status-all sudo service docker startЗапустить службу Docker
Решение 5. Запустите службу Docker с помощью Snap
Если вы установили Docker с помощью диспетчера пакетов Snap, вам нужно будет использовать команду snap для управления демоном docker.
Как правило, Snap автоматически управляет своими услугами. Однако в таких ситуациях, как эта ошибка, потребуется ручное вмешательство. Некоторые из аргументов, которые вы можете использовать с командой snap, включают остановку, запуск и перезапуск. В нашем случае мы будем использовать параметр start.
- Откройте Терминал и выполните команду ниже, чтобы запустить Docker.
sudo snap start dockerЗапустить Docker
2. Выполните команду ниже, чтобы проверить, была ли запущена служба Docker.
службы sudo snap
Это перечислит все запущенные службы привязки.
Сервисы Snap
Если приведенные выше команды не работают для вас, попробуйте подключить разъем docker: home, так как по умолчанию он не подключается автоматически. После этого запустите службу Docker.
3. Запустите Терминал и выполните следующие команды:
sudo snap connect docker: home: home sudo snap start dockerЗапустить Docker
Решение 6. Запустите Docker для пользователей без привилегий root
Ошибка также может возникать из-за отсутствия повышенных привилегий и у пользователя нет доступа к ‘unix: ///var/run/docker.sock.’ К счастью, есть обходной путь. Мы экспортируем переменную Docker Host на localhost через порт 2375.
- Откройте Терминал и выполните команду ниже:
экспорт DOCKER_HOST = tcp: // localhost: 2375Экспорт хоста Docker
Решение 7. Переустановите Docker
Если указанные выше решения не устраняют ошибку, высока вероятность того, что у вас могут быть ошибки установки. Чтобы правильно установить Docker в вашей системе Linux, следуйте инструкциям из Официальный сайт Docker.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)