Windows上WSL2原生运行Docker引擎是最轻量高效合规的方案,绕过Docker Desktop GUI及额外虚拟化开销,直接在WSL2内核运行dockerd,命令兼容、资源省、启动快;需先以管理员PowerShell执行wsl --install启用环境,再于WSL中通过apt安装Docker CE并加入docker组,最后验证docker --version和docker run hello-world。
windows 上用 wsl2 运行原生 docker 引擎,是目前最轻量、高效且合规的替代方案。它绕过 docker desktop 的 gui 层和额外虚拟化开销,直接在 wsl2 linux 内核中运行 dockerd,命令兼容、资源省、启动快,适合开发和 ci 场景。
确认并启用 WSL2 环境
这是所有后续操作的前提:
- 以管理员身份打开 PowerShell,运行:
wsl --install(自动启用 WSL、虚拟机平台、安装默认发行版) - 检查版本是否为 2:
wsl -l -v→ 确保你的发行版(如 Ubuntu-22.04)状态为 Running 且版本列为 2 - 若已有旧版 WSL1,升级指定发行版:
wsl --set-version <发行版名> 2 - 重启系统后,在 Windows 设置 → 隐私与安全 → 开发者选项中,确保“开发者模式”已开启
在 WSL 中安装 Docker Engine
不依赖 Docker Desktop,纯命令行安装官方 Docker CE:
- 启动你的 WSL 发行版(如 Ubuntu),依次执行:
sudo apt update && sudo apt upgrade -y- 卸载残留(如有旧 Docker Desktop 或手动安装):
sudo apt remove docker docker-engine docker.io containerd runc -y - 添加 Docker 官方 GPG 密钥和源:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - 安装:
sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io -y - 将当前用户加入 docker 组:
sudo usermod -aG docker $USER
⚠️ 关闭并重新打开 WSL 终端,使组权限生效
验证与基本使用
安装完成后即可直接使用标准 Docker CLI:
- 检查服务状态(WSL2 中
dockerd默认由 systemd 或 dockerd 直接管理;Ubuntu 22.04+ 无需启用 systemd,Docker 启动脚本已适配):sudo service docker start(首次可手动启一次)sudo systemctl enable docker(可选,让开机自启) - 验证安装:
docker --versiondocker info(应显示Server Version: xx.x且OSType: linux) - 跑个测试容器:
docker run --rm hello-world - 端口映射正常:例如
docker run -d -p 8080:80 nginx,在 Windows 浏览器访问http://localhost:8080即可看到响应(WSL2 自动处理 localhost 端口转发)
可选增强:支持 docker-compose 和远程开发
提升日常开发体验:
-
docker-compose v2(已内置于 Docker CLI):
确认:docker compose version;如无,可单独安装:sudo apt install docker-compose-plugin - VS Code 集成:安装 Remote - WSL 和 Docker 扩展,直接在 WSL 环境中打开项目文件夹,Docker 命令和容器列表自动识别
-
文件路径互通:Windows 文件挂载到容器时,用
/mnt/c/Users/xxx/project格式(无需额外配置);性能优于 Docker Desktop 的旧式共享机制 -
资源控制:通过
/etc/wsl.conf限制内存/CPU,例如:[wsl2]<br>memory=2GB<br>processors=2


















