Невозможно запустить Docker в WSL2 с помощью нового терминала Windows

Я недавно установил WSL2 и установил Ubuntu из Microsoft Store. Когда я запускаю Docker, используя

Запуск докера службы Sudo, я получаю сообщение ниже

Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Я следовал за шагами согласно этому Ответу и сделал ниже

    sudo groupadd docker
sudo usermod -aG docker $(whoami)

Но все еще не могу запустить Docker... при проверке журналов Docker, я мог видеть ниже

CONNECTING" module=grpc Ошибка запуска демона: Ошибка инициализации сетевого контроллера: ошибка при получении экземпляра контроллера: не удалось создать цепочку NAT DOCKER: сбой iptables: iptables -t nat -N DOCKER: iptables v1.6.1: невозможно инициализировать таблицу iptables nat ': Таблица не существует (вам нужно выполнить insmod?) Возможно, iptables или ваше ядро ​​необходимо обновить (состояние выхода 3) `

4 ответа

Я перепробовал много шагов на основе ошибки ниже

не может инициализировать таблицу iptables nat': таблица не существует (вам нужно выполнить insmod?) Возможно, необходимо обновить iptables или ваше ядро. (выход из состояния 3) `

Но Запуск Терминала от имени администратора работал. Даже если вы запускаете

Sudo Service Docker start

Терминал должен быть запущен от имени администратора

      sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

из https://forums.docker.com/t/failing-to-start-dockerd-failed-to-create-nat-chain-docker/78269

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

Проблема, с которой я столкнулся.

Я устанавливаю wsl и докер на своей новой машине. Я не могу запустить dockerd в wsl2. Как предлагает TheGameiswar, я могу запустить dockerd, если запущу терминал от имени администратора, но я все еще не могу запустить ни один образ.

Основная причина

По умолчанию используется wsl версии 1 (wsl 1), а для docker требуется wsl2.

Решение

Установите версию wsl по умолчанию на 2

      wsl --set-default-version 2

установите установленный дистрибутив на wsl2

      wsl --set-version  Ubuntu-20.04 2

Здесь есть отличное руководство, в котором приведены некоторые современные инструкции и некоторые предпосылки для использования WSL 2 и нового рабочего стола докера.

Другие вопросы по тегам