尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Windows下WSL2安装Ubuntu与Docker全指南

Windows下WSL2安装Ubuntu与Docker全指南 1. 为什么要在Windows下的Ubuntu中安装Docker在Windows系统中通过WSL运行Ubuntu并安装Docker这种组合正在成为开发者中的主流选择。我最初也是因为项目需要同时使用Windows办公软件和Linux开发环境才走上这条路。相比纯虚拟机方案WSL2的性能损耗更低相比纯Windows开发又能获得完整的Linux工具链。Docker在Ubuntu中的原生运行效率明显高于Windows版Docker Desktop。实测一个Spring Boot项目的冷启动时间WSL2UbuntuDocker的组合比Docker Desktop快了近40%。这主要得益于免去了Windows和Linux之间的文件系统转换直接使用Linux内核的容器支持更高效的内存管理机制2. 环境准备WSL与Ubuntu安装2.1 启用Windows的WSL功能首先以管理员身份打开PowerShell运行dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart重启后设置WSL2为默认版本wsl --set-default-version 2注意部分老款CPU可能需要在BIOS中开启虚拟化支持Intel VT-x/AMD-V具体按键因主板型号而异通常是开机时按F2或DEL进入BIOS设置。2.2 安装Ubuntu发行版打开Microsoft Store搜索Ubuntu选择20.04或22.04 LTS版本推荐22.04安装后首次运行会要求设置用户名和密码验证WSL版本wsl -l -v应显示VERSION列为2。如果显示为1可手动转换wsl --set-version Ubuntu-22.04 23. Ubuntu系统配置优化3.1 更换国内软件源备份原有源列表sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak编辑源列表以阿里云为例sudo sed -i shttp://.*archive.ubuntu.comhttps://mirrors.aliyun.comg /etc/apt/sources.list sudo sed -i shttp://.*security.ubuntu.comhttps://mirrors.aliyun.comg /etc/apt/sources.list更新软件包索引sudo apt update sudo apt upgrade -y3.2 安装基础工具链sudo apt install -y curl wget git vim net-tools4. Docker安装与配置4.1 官方安装方案卸载旧版本如有sudo apt remove docker docker-engine docker.io containerd runc安装依赖sudo apt install -y apt-transport-https ca-certificates gnupg-agent software-properties-common添加Docker官方GPG密钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -添加稳定版仓库sudo add-apt-repository deb [archamd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable安装Docker引擎sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io验证安装sudo docker run hello-world4.2 国内镜像加速配置创建或编辑daemon.jsonsudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [https://registry.docker-cn.com], exec-opts: [native.cgroupdriversystemd], log-driver: json-file, log-opts: { max-size: 100m }, storage-driver: overlay2 } EOF重启服务使配置生效sudo systemctl daemon-reload sudo systemctl restart docker5. 权限优化与日常使用5.1 免sudo执行docker命令将当前用户加入docker组sudo usermod -aG docker $USER退出当前会话重新登录使配置生效。验证docker ps应能正常执行而不需要sudo。5.2 配置Docker开机自启由于WSL的特殊性需要额外配置sudo tee /etc/wsl.conf -EOF [boot] command service docker start EOF在Windows中创建start_docker.batwsl -d Ubuntu-22.04 -u root service docker start并将该脚本加入Windows开机启动项。6. 常见问题排查6.1 Cannot connect to the Docker daemon通常是因为docker服务未启动sudo service docker start如果报错中包含permission denied检查用户组配置groups | grep docker若无输出重新执行用户组添加并重启会话。6.2 WSL2磁盘空间回收Docker长时间运行可能导致WSL2虚拟磁盘膨胀手动回收在PowerShell中关闭WSLwsl --shutdown优化磁盘diskpart select vdisk file%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx attach vdisk readonly compact vdisk detach vdisk exit6.3 跨系统文件访问性能避免直接在Windows目录如/mnt/c/下操作Docker卷这会导致严重的IO性能下降。建议将项目文件放在Ubuntu子系统中如~/projects或使用docker run -v时指定Linux路径7. 进阶配置建议7.1 使用docker-compose安装最新版sudo curl -L https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod x /usr/local/bin/docker-compose验证安装docker-compose --version7.2 构建多平台镜像启用buildx支持docker run --privileged --rm tonistiigi/binfmt --install all docker buildx create --use构建时指定平台docker buildx build --platform linux/amd64,linux/arm64 -t your-image:tag .7.3 资源限制配置编辑WSL配置文件%USERPROFILE%\.wslconfig[wsl2] memory4GB processors2 swap2GB这个配置需要重启WSL生效wsl --shutdown
返回列表