WSL 让 Windows 拥有完美 Docker 体验
WSL 全称 Windows Subsystem for Linux,即运行在 Windows 上的 Linux 子系统。“WSL + Linux 发行版”的组合,可以让 Windows 拥有接近原生 Linux 的体验。在 WSL 上部署 Docker ,让你在 Windows 上可以拥有完美 Docker 体验。
安装 WSL
安装 WSL 需要硬件和系统设置均支持虚拟化,具体可以参考官方文档。如果软硬件符合条件,一条简单命令即可安装 WSL:
#安装 wsl
wsl --install
#升级 wsl,目前最新版为 2.1.5
wsl --update
官方安装文档:
https://learn.microsoft.com/zh-cn/windows/wsl/install
安装好 WSL 后,你需要根据实际情况安装 Linux 发行版。在 Microsoft Store 中搜索 wsl 即可下载你想要的 Linux 发行版。本文以 Ubuntu-22.04 为案例:

如果没有 Microsoft Store ,可以去官网下载 WSL 发行版:
https://learn.microsoft.com/zh-cn/windows/wsl/install-manual

配置 .wslconfig 文件
WSL 有 2 个重要的配置文件 .wslconfig 和 wsl.conf,其中 .wslconfig 位于 Windows 系统上,wsl.conf 位于 Linux 发行版系统上。首先介绍配置 .wslconfig。
打开 .wslconfig 文件目录:Win+R 运行 %UserProfile% ,会打开用户目录,然后新建一个 wslconfig 文件。 .wslconfig 配置可以参考如下内容:
[experimental]
#自动释放内存
autoMemoryReclaim=gradual
#网络镜像模式
networkingMode=mirrored
hostAddressLoopback=true
#共用 Windows DNS、防火墙、代理设置
dnsTunneling=true
firewall=true
autoProxy=true
配置 wsl.conf 文件
wsl.conf 的作用是配置自启动程序、磁盘自动挂载等,文件目录为:/etc/wsl.conf。下面是参考案例:
[boot]
#启用 systemd
systemd=true
#开机运行 docker
service docker start
.wslconfig 和 wsl.conf 的详细参数可以参考官方文档:
https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config
安装 Docker
docker 可以通过发行版的包管理工具安装,比如 Ubuntu(sudo apt install docker docker-compose),也可以用官方的安装脚本进行安装:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo service docker start
在本文案例中 WSL 采用了 networkingMode=mirrored 镜像网络模式,好处是可以用 Windows 相同 IP 访问到 docker 。但是必须配置一下,否则无法访问 docker 容器。
方法一:ignoredPorts
在 .wslconfig 中通过 ignoredPorts 命令设置放行的端口,通过这些端口可以顺利访问你部署的 docker 容器。
[experimental]
networkingMode=mirrored
hostAddressLoopback=true
ignoredPorts = 8000,8080
方法二:hostAddressLoopback
在 .wslconfig 中添加 hostAddressLoopback=true :
[experimental]
networkingMode=mirrored
hostAddressLoopback=true
然后进入 Linux 发行版编辑 docker 配置文件:/etc/docker/daemon.json,添加:
{
"iptables": false
}
这个方案的缺点是无法使用 iptables。
添加中文环境支持
如果遇到中文显示乱码检查一下是否安装中文字体
sudo apt install fonts-noto-cjk
WSL 开机运行
如果你想开机运行 WSL (让你的 docker 容器随时可访问),首先查看发行版名称并记下来:
Win+R 运行 shell:startup 打开启动目录,创建一个 wsl-startup.vbs 脚本文件,脚本内容如下:
set ws=wscript.CreateObject("wscript.shell")
ws.run "wsl -d Ubuntu-22.04",vbhide
可自行修改 Linux发行版名称(本案例为 Ubuntu-22.04),vbhide 参数为隐藏窗口运行。这样 WSL 的 Linux 发行版就会在开机时就运行。
然后装一个好用的 docker 管理器比如:dockge 或者 portainer,就可以在开始折腾了,就像把你的 Linux 主机和 Windows 二合一了一样。


注意,折腾 WSL 主机内存最好在 32G 以上。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~


去看看
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
去看看
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案