简介:本文聚焦Windows环境下WSL与Docker的协同部署方案,帮助开发者在本地构建与生产环境高度一致的Linux开发环境。通过对比WSL与Docker的定位差异,解析两者结合使用的技术优势,并提供从环境配置到容器化开发的全流程指南,助力开发者提升开发效率与代码质量。
在Windows系统中,开发者常面临两大痛点:其一,AI框架、开源工具链对Linux环境的强依赖;其二,开发环境与生产环境不一致导致的部署问题。WSL(Windows Subsystem for Linux)与Docker的组合方案,正是为解决这些问题而生。
部署目标:通过WSL2与Docker的协同部署,在Windows系统中构建一个性能接近原生Linux的开发环境,实现容器化开发、统一包管理、无缝文件系统集成三大核心能力。
适用人群:AI开发者、全栈工程师、DevOps工程师、企业技术团队。
技术背景:需理解Linux基础命令、容器化概念、网络配置原理,熟悉Windows系统操作。
| 组件 | 核心功能 | 适用场景 |
|---|---|---|
| WSL2 | 提供轻量级Linux虚拟机环境 | 运行Linux命令行工具、开发框架 |
| Docker | 标准化容器运行时与编排工具 | 应用隔离、镜像构建、服务部署 |
\\wsl$\目录,Docker镜像存储在WSL2的ext4文件系统中
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linuxdism.exe /online /enable-feature /featurename:VirtualMachinePlatform
netsh interface portproxy add v4tov4 listenport=8080 connectaddress=127.0.0.1 connectport=8080
wsl --install -d Ubuntu-20.04
wsl --set-default Ubuntu-20.04
sudo apt update && sudo apt upgrade -y
C:\Program Files\Docker\Docker\resources\settings.json):
{"memoryMiB": 8192,"cpus": 4,"swapMiB": 2048}
/etc/docker/daemon.json):
{"registry-mirrors": ["https://<mirror-address>"]}
sudo systemctl restart docker
sudo apt install -y build-essential python3-pip nodejs npm
code .命令直接打开WSL2工作目录
FROM python:3.8-slimWORKDIR /appCOPY . .RUN pip install -r requirements.txtCMD ["python", "app.py"]
docker build -t my-app .docker run -p 8080:8080 my-app
/etc/wsl.conf核心配置:
[network]generateResolvConf = false[automount]root = /options = "metadata,umask=22,fmask=11"
# 增加虚拟内存echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
docker run --cap-drop=ALL --security-opt=no-new-privileges my-app
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \-keyout ~/docker.key -out ~/docker.crt
curl http://localhost:8080
docker ps -a | grep my-app
docker logs my-app
docker stats my-app
ls /mnt/c/Users/Public # 检查Windows文件系统挂载
wsl --shutdownnetsh winsock reset
docker build卡在某一步
chmod 644 /path/to/file
docker run --restart unless-stopped my-app
{"features": { "buildkit": true }}
docker image prune -a --force
通过WSL2与Docker的协同部署,开发者可在Windows系统中获得:
建议持续关注WSL2与Docker的版本更新,定期应用安全补丁,并建立标准化的开发环境镜像库,进一步提升团队协作效率。