我听说“Windows 10 春季更新带来 WSL Unix 套接字支持”。
之前,由于套接字错误,我无法将 docker 服务运行到 WSL 中。
无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序。docker 守护程序是否正在运行?
新的 WLS Spring 更新功能足以在 WSL 上运行 docker 吗?
答案1
新的 WLS Spring 更新功能足以在 WSL 上运行 Docker 吗?
微软不支持在 WSL 实例内运行 Docker 守护程序(也称为服务)。
我们经常被问到如何在 Windows Subsystem for Linux (WSL) 中运行 docker。我们不支持在 WSL 中直接运行 docker 守护程序。但您可以从 WSL 调用在 Windows 下运行的守护程序。这能让您做什么?您可以创建 docker 文件、构建它们并在守护程序(Windows 或 Linux,取决于您选择的运行时)中运行它们,所有这些都可以在 WSL 中轻松完成。
Docker 守护程序无法在 WSL 下运行,因为它没有实现必要的内核 ABI。如果您正在运行适用于 Windows 的 Docker,则可能正在连接到它管理的 Hyper-V 虚拟机。
Docker 是在 WSL 中运行还是连接回 Windows?
虽然守护程序不能在 WSL 实例中运行,但您可以使用 Docker CLI 连接到在 Windows 安装上运行的 Docker 服务。
在常规设置中,您需要在没有 TLS 的情况下公开守护进程。此步骤是必需的,以便守护进程在 TCP 端点上侦听。如果不这样做,您将无法从 WSL 连接。
我们仍然需要在 WSL 中安装 Docker,因为它将允许我们访问 > Docker CLI。我们只是不需要启动服务器。
以下说明适用于 Ubuntu,但随着 Windows 2017 年秋季更新+,WSL 现在支持多种发行版,因此如果您碰巧使用 Ubuntu 以外的其他系统,请按照 Docker 安装文档中适合您发行版的 Docker 安装指南进行操作。
这将安装 edge 频道,如果需要,可以将“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”服务并重新启动它。