WSL2 не может подключиться к демону Docker

вот моя установка:

  • Windows 10 PRO - build 19041.153 - инсайдерская программа - медленное кольцо
  • Ubuntu 18.04LTS подсистема в режиме WSL2
  • Docker for desktop 2.2.0.4 - включена интеграция WSL2 с моей подсистемой Ubuntu

В настоящее время я был вынужден использовать Windows для разработки, поэтому я стал участником инсайдера Microsoft и установил ubuntu с режимом WSL2. Рабочий стол Docker поддерживает интеграцию с WSL2, поэтому попробовал ... Целую неделю он работал безупречно. Сегодня после перезагрузки ПК я не могу снова запустить докер. Ubuntu может видеть внедренные двоичные файлы с рабочего стола Docker, но больше не может подключаться к демону Docker, размещенному в Windows.

Когда я вызываю терминал subsys docker info, он возвращает

$ docker info
Client:
 Debug Mode: false

Server:
ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
errors pretty printing info

или с docker-compose up

ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

Что я уже пробовал:

  • выставить демон без TLS с такими envs, как DOCKER_HOST=localhost:2375, DOCKER_HOST=tcp://localhost:2375, DOCKER_HOST=127.0.0.1:2375, DOCKER_HOST=tcp://127.0.0.1:2375 => тот же результат
  • удалить рабочий стол Docker и установить предыдущую версию
  • выключить брандмауэр выигрыша

Мне очень, очень нужно, чтобы это работало. Спасибо за любые идеи. Самое странное, что вчера это сработало, и с тех пор я не вносил никаких изменений в систему ...


person Dutch77    schedule 16.03.2020    source источник
comment
Установил другой Ubuntu (16.04), и он работает. Ну это круто, но как исправить мою основную подсистему. :)   -  person Dutch77    schedule 16.03.2020
comment
Вы пробовали unset DOCKER_HOST? Звучит странно, но именно это помогло мне.   -  person Josiah    schedule 02.06.2020
comment
@Josiah, который сделал это для меня!   -  person Dylan    schedule 13.07.2020
comment
@Josiah спасибо, сделал это и для меня!   -  person Kubadev    schedule 26.02.2021


Ответы (7)


Я знаю, что это может быть устаревшим для настоящего вопроса, но это должно сэкономить нам драгоценное время, особенно когда Windows 20H1 = 2004 будет запущена в производство в этом месяце (май 2020 г.).

Версия операционной системы: Windows 10 для образовательных учреждений (то же, что и Enterprise, и расширенная версия Pro).
Версия: 2004
Сборка (версия ОС) < / strong>: 19041.264
Другое: Windows Feature Experience Pack 120.2202.130.0.
~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~
Оболочка: Терминал WSL

Во-первых, я ранее установил WSL v1, затем выполнил процедуру обновления до WSL v2, и эта ошибка появляется: «ОШИБКА: невозможно подключиться. к демону Docker по адресу tcp: // localhost: 2375. Работает ли демон Docker? ".

Во-вторых, чтобы исправить это, я выполнил инструкции, указанные здесь: Ссылка, и это сработало.

В-третьих, после некоторых тестов я думаю, что отсутствующим изменением в обновлении было удаление переменной DOCKER_HOST из сценария запуска оболочки.

РЕЗЮМЕ. В моем случае процедура постоянного исправления должна быть следующей: ШАГИ:

1. Проверьте, если это ваш случай, отключив переменную DOCKER_HOST (см. изображение ниже).

2. Если ошибка исчезла на предыдущем шаге, пора исправить изменяет установку переменной DOCKER_HOST в стартовом скрипте оболочки (в моем случае это $ HOME / .bashrc).
Прокомментировал это:
#export DOCKER_HOST=tcp://localhost:2375
#export DOCKER_BUILDKIT=1

ПРИМЕЧАНИЕ. Также включите DOCKER_BUILDKIT.

3. Закройте и откройте Терминал.

Проверьте на шаге 1:  введите описание изображения здесь

Удачи !!

person Patricio    schedule 06.05.2020
comment
Для меня это сработало после отключения старой переменной (удаленной из .bashrc). Спасибо! - person ARS81; 28.05.2020
comment
Мой вопрос в том, почему, черт возьми, это не было четко задокументировано Докером в первую очередь! - person Matthew Marichiba; 01.06.2020
comment
Спасибо @Patricio, ваше решение сработало для меня. Моя ошибка заключалась в том, что я установил docker-compose внутри WSL, когда Docker Desktop уже всем этим управляет! - person rachids; 03.11.2020
comment
Следуя инструкциям в связанной статье, у меня сработало. У меня не было переменной среды DOCKER_HOST, поэтому мне нужно было следовать полным инструкциям и установить Docker Desktop Edge, и он отлично работает. - person Bruno Girin; 27.11.2020
comment
Для меня ключом было удаление docker-ce и docker-ce-cli, которые все еще присутствовали, поскольку я раньше использовал WSL v1. Лучший совет из связанного ресурса: Некоторые из доступных руководств или советов могут сбивать с толку, потому что на этот раз вам не следует устанавливать или настраивать что-либо, связанное с Docker, в вашем дистрибутиве WSL Linux. - person maggie; 11.06.2021

Если это поможет кому-то еще, у кого есть эта проблема, для меня оказалось, что моя подсистема была внезапно (и «сама по себе») отключена в настройках докера RESOURCES> WSL INTEGRATION.

person user2070077    schedule 23.04.2020
comment
Это случилось со мной при обновлении версии Stable до Edge. - person Greg Ferreri; 31.08.2020
comment
Мне то же. Это случилось, когда я добавил ubuntu 20 рядом с ubuntu 18 - person fabiolune; 06.11.2020
comment
черт возьми, я бы проголосовал 3 раза, если бы я мог - person Iftimie Tudor; 15.12.2020
comment
то же самое здесь .. * снова поставил галочку * запустить wsl --shutdown * снова запустил дистрибутив WSL2 * по-прежнему docker ps отвечает Cannot connect to the Docker daemon at... Ребята, вам нужен был перезапуск? - person spex66; 21.01.2021
comment
@ spex66 я перезапустил, но у меня все еще не сработало, вам повезло? - person vcapra1; 27.01.2021
comment
Это случилось со мной, когда я переместил файл хранилища моей виртуальной машины с помощью команд wsl, то есть отмена его регистрации и повторный импорт удаляли его из интеграции с докером. - person Wasabi; 05.02.2021

Я обнаружил, что моя проблема связана с неправильным чтением инструкций., Исправлено в моей версии Windows 1909 и WSL 2 с помощью следующих команд в CMD:

wsl.exe -l -v
wsl.exe --set-version ${distro-name} ${wsl version}

пример:

C:\Users\xxxxx>wsl.exe -l -v
  NAME                   STATE           VERSION
* Ubuntu-18.04           Running         1
  docker-desktop-data    Running         2
  docker-desktop         Running         2

C:\Users\xxxxx>wsl.exe --set-version Ubuntu-18.04 2
Conversion in progress, this may take a few minutes...
For information on key differences with WSL 2 please visit https://aka.ms/wsl2

Вот и все

person Abdelrahman Farag    schedule 23.11.2020
comment
Это единственное, что у меня сработало, но только после того, как я обновил свою Windows с помощью функции проверки обновлений, на 1909 Build 18363.1256 - работает как шарм - person Meir Gabay; 10.01.2021

вы можете рассмотреть возможность обновления вашей версии до 19582.1000, это работает для меня.

См. эту проблему.

введите здесь описание изображения

person oOMG    schedule 16.03.2020
comment
Перенесли в сборку 19582.1001. Та же проблема :( - person Dutch77; 16.03.2020
comment
вам следует перейти на серверную часть Docker Desktop WSL 2 docs.docker.com/ docker-for-windows / wsl-tech-preview - person oOMG; 17.03.2020
comment
Сделал это. Не повезло. Но это уже не имеет значения. Я удалил всю Ubuntu и начал с чистого листа, и он работает. (теперь). Большое спасибо за отзывы :) - person Dutch77; 17.03.2020

ПРОБЛЕМА: не удается подключиться к демону Docker по tcp: //127.0.0.1: 2375

Powershell

wsl -l -v   # ALL DISPLAY "2"

Linux

unset DOCKER_HOST

/etc/init.d/docker restart

Перезапустить докер

windows docker restart
windows firewall off

Докер-процессы Linux

docker ps
person guobiao_cn    schedule 11.10.2020

Во что бы то ни стало (это старая ветка). Может, кто-то еще отчаянно пытается разгадать эту загадку.

Я только что наткнулся на решение в моем случае. Я использую следующее

  • докер для настольных ПК версии 3.3.3
  • wsl 2
  • Fedora 33 Я снова и снова сталкивался с этой проблемой. Невозможно подключиться к демону Docker по адресу unix: ///var/run/docker.sock. Переустановил, перезапустил, блаблабла.

Моя основная ошибка заключалась в правах доступа к /var/run/docker.sock, и я запускаю wsl под своим личным пользователем srw-rw ---- 1 root docker 0 7 мая 10:29 /var/run/docker.sock

Итак, если я запускаю как root (sudo docker info) или помещаю себя в группу docker (sudo usermod -aG docker $ USER), у меня все в порядке. Пожалуйста, посмотрите здесь https://docs.docker.com/engine/install/linux-postinstall/

person petero124    schedule 07.05.2021

В приложении Docker Desktop мне пришлось вручную включить интеграцию с моим дистрибутивом в

Settings > Resources > WSL Integration
person amadesclaire    schedule 14.07.2021