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 以上。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~


华莱士真好吃嘿嘿嘿
去看看
校验提示文案
还得取个名字
校验提示文案
薄荷口味
校验提示文案
xueyuking
校验提示文案
Dkmets
校验提示文案
流年德云殇
校验提示文案
凡蜀黍
校验提示文案
jacksboy
校验提示文案
popeyezq
校验提示文案
wintsa123
校验提示文案
华莱士真好吃嘿嘿嘿
校验提示文案
天真de小宇
校验提示文案
值友3124482475
校验提示文案
值友3124482475
校验提示文案
天真de小宇
校验提示文案
华莱士真好吃嘿嘿嘿
校验提示文案
华莱士真好吃嘿嘿嘿
去看看
校验提示文案
wintsa123
校验提示文案
popeyezq
校验提示文案
jacksboy
校验提示文案
还得取个名字
校验提示文案
xueyuking
校验提示文案
凡蜀黍
校验提示文案
流年德云殇
校验提示文案
薄荷口味
校验提示文案
Dkmets
校验提示文案