用 WSL 快速部署 Docker:Windows 下的轻量容器环境搭建指南
目录
为什么要使用Docker
传统发布是 开发+运维合作。开发将写的代码打成包,并且告诉运维代码应该在什么样的环境启动,最后由运维,完成将开发环境的代码,发布到生产环境。
但会出现一个 问题,由“开发” 告诉“运维” 这个环境 这个是什么样的,比如要求:redis 版本要使用7.0;maven 使用 3.9.6 ;jdk 使用1.8 的 等等等 但是最后由运维一一配好后,运行代码可能会差强人意,看不到想要的效果!
这时候,如果有一个东西,能够 让 开发 打包代码的同时,将开发环境一并打包到jar 包中,jar包=代码+配置(环境)最后, 发布到生产环境,这样就避免了生产环境和开发环境不同步的问题
恰好 Docker 就是做这件事情的!
部署 Docker
前置条件
- 一般情况下,都是符合条件的
前置条件(务必确认)系统版本要求:Windows 10:需升级到 2004 及以上版本(Build 19041+),否则不支持 WSL 2;Windows 11:无版本限制,原生支持 WSL 2 全功能。硬件虚拟化开启:按Ctrl+Shift+Esc打开任务管理器 → 性能 → CPU → 查看 “虚拟化” 是否为 “已启用”;若未启用,重启电脑进入 BIOS(Del/F2/F10),开启「Virtualization Technology(VT-x/AMD-V)」。
命令行权限说明:所有wsl/dism相关命令,均需以管理员身份打开 CMD/PowerShell 执行。
一,使用wsl 搭建Docker需要的基础环境
一 ,开启 WSL 2
cmd命令行 /powershell 管理员身份打开
输入:
wsl --install这个命令会自动:
- 启用 “适用于 Linux 的 Windows 子系统” 和 “虚拟机平台” 功能;
- 下载并安装 WSL 2 内核更新包(Windows 11 已集成,Windows 10 需手动补装);
- 下载并安装默认的 Linux 发行版(Ubuntu)。
- 自动将 WSL 版本设置为 2。
但执行该命令之后,打印结果,如果 发现未能实现预期效果。如图所示,表示 启用了 WSL 功能,但未安装任何 Linux 发行版
C:\Users\Administrator>wsl --install 版权所有(c) Microsoft Corporation。保留所有权利。 用法: wsl.exe [Argument] [Options...] [CommandLine] 运行 Linux 二进制文件的参数: 如果未提供命令行,wsl.exe 将启动默认 shell。 --exec, -e <CommandLine> 在不使用默认 Linux Shell 的情况下执行指定的命令。 -- 按原样传递其余命令行。 选项: --cd <Directory> 将指定目录设置为当前工作目录。 如果使用了 ~,则将使用 Linux 用户的主页路径。如果路径 以 / 字符开头,将被解释为绝对 Linux 路径。 否则,该值一定是绝对 Windows 路径。 --distribution, -d <Distro> 运行指定分发。 --user, -u <UserName> 以指定用户身份运行。 管理适用于 Linux 的 Windows 子系统的参数: --help 显示用法信息。 --install [选项] 安装额外的适用于 Linux 的 Windows 子系统分发。 要获得有效分发列表,请使用“wsl --list --online”。 选项: --distribution, -d [参数] 按名称下载并安装分发。 参数: 有效分发名称(不区分大小写)。 示例: wsl --install -d Ubuntu wsl --install --distribution Debian --set-default-version <Version> 更改新分发的默认安装版本。 --shutdown 立即终止所有运行的分发及 WSL 2 轻型实用工具虚拟机。 --status 显示适用于 Linux 的 Windows 子系统的状态。 --update [Options] 如果未指定任何选项,则将 WSL 2 内核更新 为最新版本。 选项: --rollback 恢复为 WSL 2 内核的先前版本。 --inbox 仅更新收件箱 WSL 2 内核。不要从 Microsoft Store 下载 WSL。 --web-download 从 Internet 而不是 Microsoft Store 下载最新版本的 WSL。 用于管理适用于 Linux 的 Windows 子系统中的分发的参数: --export <Distro> <FileName> 将分发导出到 tar 文件。 对于标准输出,文件名可以是 -。 --import <Distro> <InstallLocation> <FileName> [Options] 将指定的 tar 文件作为新分发导入。 对于标准输入,文件名可以是 -。 选项: --version <Version> 指定要用于新分发的版本。 --list, -l [Options] 列出分发。 选项: --all 列出所有分发,包括 当前正在安装或卸载的分发。 --running 仅列出当前正在运行的分发。 --quiet, -q 仅显示分发名称。 --verbose, -v 显示所有分发的详细信息。 --online, -o 显示使用“wsl --install”进行安装的可用分发列表。 --set-default, -s <分发> 将分发设置为默认值。 --set-version <分发> <版本> 更改指定分发的版本。 --terminate, -t <分发> 终止指定的分发。 --unregister <分发> 注销分发并删除根文件系统。- 系统已经启用了 WSL 功能,但未安装任何 Linux 发行版
- 命令缺少指定发行版的参数,或系统版本 / 配置不满足默认安装条件
结论:若执行wsl --install仅打印命令用法,说明你的系统已启用 WSL 功能但无默认发行版,或系统版本低于 2004(不支持一键安装发行版),需手动指定发行版安装(wsl --install -d Ubuntu-24.04)。
二,指定发行版安装
查看可选发行版
wsl --list --online
三,手动指定发行版安装
wsl --install -d Ubuntu-24.04四,补充,搭建Docker环境,会遇到的问题,及其解决办法
一,如图所示:下载后发现 系统已经启用了 WSL 功能,但缺少 WSL2 运行必需的内核更新包。

解决办法:参照 下载 docker安装包-更新wsl 步骤
二,如果 使用wsl -- install命令无法 设置 WSL2 为默认版本
wsl --set-default-version 2三,如果 使用wsl -- install命令无法 启用 “适用于 Linux 的 Windows 子系统” 和 “虚拟机平台” 功能;
快速启用 “适用于 Linux 的 Windows 子系统” 状态
dism.exe /online /get-featureinfo /featurename:Microsoft-Windows-Subsystem-Linux快速启用 “虚拟机平台” 功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart结果判断:
如果输出中包含 State : Enabled → 功能已启用;
如果是 State : Disabled → 功能未启用。
执行完成后,重启电脑让功能生效。
五,验证安装
方法一:
# 查看已安装的 WSL 发行版及版本 wsl --list --verbose
如图所示,可以看见Ubuntu-24.04 成功安装,并且当前环境是wsl2
方法二:
wsl --version
安装完成后就能正常启动 Ubuntu,按提示设置用户名和密码即可~
如下图所示,
Installing, this may take a few minutes... Please create a default UNIX user account. The username does not need to match your Windows username. For more information visit: https://aka.ms/wslusers Enter new UNIX username: dj New password: Retype new password: passwd: password updated successfully Installation successful! 适用于 Linux 的 Windows 子系统现已在 Microsoft Store 中可用! 你可以通过运行“wsl.exe --update”或通过访问 https://aka.ms/wslstorepage 进行升级 从 Microsoft Store 安装 WSL 将可以更快地获取最新的 WSL 更新。 有关详细信息,请访问 https://aka.ms/wslstoreinfo To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/pro System information as of Sun Jan 11 17:48:43 CST 2026 System load: 0.09 Processes: 9 Usage of /: 0.5% of 250.98GB Users logged in: 0 Memory usage: 1% IPv4 address for eth0: 172.21.14.172 Swap usage: 0% This message is shown once a day. To disable it please create the /home/dj/.hushlogin file. dj@Administrator:~$当上面的步骤,都走完后,可以打开cmd命令行,输入wsl ,回车进入了window子系统Linux

六,更换国内源(解决 Ubuntu 下载软件慢的问题)
一,为防止意外,提前备份 源文件
# 备份源文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 替换为阿里云源(24.04版本,代号noble) sudo tee /etc/apt/sources.list > /dev/null <<EOF deb http://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse EOF二,更新系统软件包
如下所示:
sudo apt update && sudo apt upgrade -y三,验证 WSL 版本(确认是 WSL2)
wsl --list --verbose二,下载 docker安装包
一,下载 docker安装包
下载链接:https://docs.docker.com/desktop/setup/install/windows-install/

下载之后,双击安装包,安装默认设置,点击即可

双击进入Docker Desktop 进入,你可以看见首页面,要你登录,注册啥的,不用管,点基continue 跳过,来到下面这个图片的界面
选 “不登录”原因:
日常使用 Docker 的基础功能(拉取镜像、运行容器、管理容器等)都不需要登录账号,只有用 Docker 的在线订阅、云镜像仓库等高级功能时才需要登录。所以直接点「Continue without signing in」,就能快速进入主界面开始用 Docker 了。
如果你看见,你的界面显示,你的wsl 版本太低,要求你更新wsl的内核安装包
本质:是需要更新 WSL 的内核及组件(包含内核安装包的更新),和之前的 “缺少内核包” 是类似的问题

二,更新 wsl
前提: 使用梯子,下载更新的wsl
一,使用命令更新wsl
一,使用cmd/powershell管理员权限 打开

输入:
wsl --update如果,我使用powershell ,管理员身份执行该命令,但会发现如果不启用梯子,会很慢

二,到gitup,下载最新的wsl 安装包
链接:https://github.com/microsoft/WSL/releases

下载后,双击,即可,选择默认配置
成功打开Docker!!!

三 ,验证 Docker 安装成功
在 WSL 的 Ubuntu 终端执行:
docker --version # 查看 Docker 版本 docker run hello-world # 运行测试容器
三,wsl2集成docker
通俗的说,就是可以在wsl环境中,敲docker命令,不需要使用docker界面工具
问题:当你上面的步骤,都配置好之后,你进入 wsl环境中,敲了这样的命令:
docker run hello world但是很遗憾,报错了!
一,怎么将wsl2 和docker串联在一起呢?

看到resource下的WSL integration,勾选 UBuntu-24.04,然后重启

通过DockerDesktop 中的设置关联上WSL,可以在wsl环境中使用 docker命令

应用成功!


根据下面的图片发现,他会自动检查你写的docker命令的正确性,比如我这个写的 docker hello world 表示有问题!

重新输入命令,这个是正常的,因为本地确实没有这个镜像,会从远程仓库,去拉取

补充:当你第一次 通过DockerDesktop 中的设置关联上WSL,可以在wsl环境中使用 docker命令,但是当你第二次重新使用wsl 环境 ,敲击 docker命令时,会发现 dockers 未集成WSL ,需要你重新在 DockerDesktop 中的设置关联上WSL,
四,配置国内镜像加速从docker远程仓库下载镜像
复制后,直接粘贴到指定位置,然后重启 docker,就可以了
{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "registry-mirrors": [ "https://registry.cn-hangzhou.aliyuncs.com", "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ] }