8

Я слышал, что "Обновление Windows 10 Spring с поддержкой сокетов WSL Unix".

Раньше я не мог запустить службу Docker в WSL из-за ошибки сокета.

Не удается подключиться к демону Docker в unix:///var/run/docker.sock. Работает ли демон Docker?

Достаточно ли новой функции весеннего обновления WLS для запуска Docker на WSL?

1 ответ1

10

Достаточно ли новой функции весеннего обновления WLS для запуска Docker на WSL?

Microsoft не поддерживает запуск демона Docker (также известного как служба) в экземпляре WSL.

Нас часто спрашивают о запуске docker из подсистемы Windows для Linux (WSL). Мы не поддерживаем запуск демона docker напрямую в WSL. Но то, что вы можете сделать, это вызвать демона, работающего под Windows, из WSL. Что это позволяет вам делать? Вы можете создавать файлы Docker, создавать их и запускать их в демоне - Windows или Linux, в зависимости от того, какое время выполнения вы выбрали, - все из удобства WSL.

[Cross Post] WSL Совместимость с Docker

Демон Docker не может работать под WSL, так как он не реализует необходимые ABI ядра. Если вы используете Docker для Windows, вы, вероятно, подключаетесь к виртуальной машине Hyper-V, которой она управляет .

Docker работает в WSL или подключается обратно к Windows?

Хотя демон не может работать в экземпляре WSL, вы можете использовать Docker CLI, чтобы подключиться к службе Docker, работающей в вашей установке Windows.

В общих настройках вы захотите выставить демона без TLS. Этот шаг необходим для того, чтобы демон прослушивал конечную точку TCP. Если вы этого не сделаете, вы не сможете подключиться из WSL.

Нам все еще нужно установить Docker внутри WSL, потому что он даст нам доступ к> Docker CLI. Мы просто не будем беспокоиться о запуске сервера.

Следующие инструкции относятся к Ubuntu, но с осенним обновлением Windows 2017 года + WSL теперь поддерживает различные дистрибутивы, поэтому, если вам случится использовать что-то отличное от Ubuntu, следуйте руководству по установке Docker для вашего дистрибутива из документации по установке Docker.

Это установит краевой канал, замените «edge» на «stable», если хотите. Вы также можете обновить версию Docker Compose на основе последней версии.

# Environment variables you need to set so you don't have to edit the script below.
export DOCKER_CHANNEL=edge
export DOCKER_COMPOSE_VERSION=1.21.0

# Update the apt package index.
sudo apt-get update

# Install packages to allow apt to use a repository over HTTPS.
sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

# Add Docker's official GPG key.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# Verify the fingerprint.
sudo apt-key fingerprint 0EBFCD88

# Pick the release channel.
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   ${DOCKER_CHANNEL}"

# Update the apt package index.
sudo apt-get update

# Install the latest version of Docker CE.
sudo apt-get install -y docker-ce

# Allow your user to access the Docker CLI without needing root.
sudo usermod -aG docker $USER

# Install Docker Compose.
sudo curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose &&
sudo chmod +x /usr/local/bin/docker-compose

Прежде всего, откройте терминал WSL, потому что нам нужно выполнить несколько команд.

Создайте и измените новый файл конфигурации WSL:

sudo nano /etc/wsl.conf

# Now make it look like this and save the file when you're done:
[automount]
root = /
options = "metadata"

Если вы получите ошибку в следующий раз, когда вы запустите свой терминал WSL, не волнуйтесь. Это ошибка с 18.03, и вы можете легко исправить это. Нажмите CTRL+Shift+ECS, чтобы открыть диспетчер задач, перейдите на вкладку «Службы», найдите службу «LxssManager» и перезапустите ее.

Настройка Docker для Windows и WSL для безупречной работы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .