尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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
RELATED

相关推荐

告别鼠标依赖:用键盘控制鼠标的完整解决方案

告别鼠标依赖:用键盘控制鼠标的完整解决方案

告别鼠标依赖:用键盘控制鼠标的完整解决方案 【免费下载链接】mouseable Mouseable is intended to replace a mouse or trackpad. 项目地址: https://gitcode.com/gh_mirrors/mo/mouseable 你是否厌倦了在键盘和鼠标之间频繁切换?是否希望双手始…

📅 2026/10/1 13:00:17
通达信缠论插件ChanlunX:3步实现自动化技术分析,告别繁琐手工作图

通达信缠论插件ChanlunX:3步实现自动化技术分析,告别繁琐手工作图

通达信缠论插件ChanlunX:3步实现自动化技术分析,告别繁琐手工作图 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 还在为复杂的缠论分析而烦恼吗?每次分析都要手动识别…

📅 2026/9/8 21:49:38
AE零基础入门:从核心概念到实战项目,掌握动态图形与视觉特效合成

AE零基础入门:从核心概念到实战项目,掌握动态图形与视觉特效合成

如果你打开这篇文章,大概率是因为: 你想学视频剪辑,但被网上那些“3分钟速成”“一键出大片”的教程忽悠过,结果发现连软件界面都看不懂,更别说剪出一个像样的片子了。 别担心,这不是你的问题。市面上很…

📅 2026/9/15 3:55:22
MORE NEWS

更多资讯

📰

国产交换机SSH配置实战:华为H3C锐捷迈普四大厂商差异详解

1. 为什么今天还在手动敲命令配SSH?——四家国产主流交换机的SSH配置真相 你是不是也遇到过这样的场景:刚接手一台华为S5735,想用SSH远程管理,结果连基础密钥生成都卡在 ssh server enable 报错;或者在H3C S5130上反…

📰

Appium移动端自动化测试:从环境搭建到实战全解析

1. 为什么移动应用自动化测试绕不开 Appium前后端分离、快速迭代、多端适配,这些词在移动互联网项目里几乎天天能听到。作为测试工程师,如果还停留在手工点屏幕、反复回归主流程,项目节奏稍微一起来,很快就成了瓶颈。我自己这几年…

📰

四家国产交换机SSH配置差异与实战加固指南

1. 为什么今天还在手动敲Telnet命令?——SSH不是“加个密”那么简单你有没有在凌晨两点接到告警电话,说某台锐捷S5750交换机被批量扫描,登录日志里全是失败的admin/admin尝试?有没有在H3C S6520上配完VLAN,一查日志发现…

📰

用Python实现TXT批量转SHP:属性无损与坐标转换实战

干GIS这行的人,谁没被TXT转SHP这件事折磨过?外业拿回来几十个GPS点文件,每一个文件里都带着点号、高程、采集时间这些必须保留的属性,你打开ArcGIS,“添加XY数据”,选字段、选坐标系,一个一个来…

📰

软件设计7大原则:从代码能跑到可维护的实战指南

我在做代码评审的时候,最常被问到的一句话是:"这代码能跑,为什么要改?"能跑只是最低标准,软件是要养好几年的,后面接手的人能不能改得动,才是真正拉开差距的地方。软件设计7大原则——…

📰

Madeira 实战:在 Linux ARM64 上通过 FEX-Emu 与 Wine 运行 Windows 应用

1. 项目缘起:为什么要在 Linux 上折腾 Windows 应用兼容层 第一次接触 Madeira 这个项目,是在一台老旧的 ThinkPad 上。那台机器跑着某个国产 Linux 发行版,硬件配置不算差,但日常办公里总有几个 Windows 独占的小工具绕不开——比…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬