许多开发者希望在自己的 Windows 11 家庭版电脑上运行 Docker,但常常发现官方 Docker Desktop 无法直接安装。常见的解决方案要么建议升级到专业版,要么推荐使用传统的虚拟机软件,再在其中安装 Docker。
其实,我们还有一个更直接、性能更好的选择:利用 Windows 内置的 WSL(适用于 Linux 的 Windows 子系统)。通过它,我们可以在一个完整的 Linux 环境中直接安装和使用 Docker,并且能获得接近原生 Linux 的硬件性能。下面就来详细介绍如何一步步实现。
一、WSL的安装与准备
WSL 的安装需要启用三个 Windows 功能组件。请注意,根据后续版本的使用经验,Hyper-V 组件可能不是必需的,但为了确保兼容性,我们建议一并勾选。
所需组件如下:
- Hyper-V
- 适用于 Linux 的 Windows 子系统
- 虚拟机平台
第一步:启用Windows功能
按下 Win + S 组合键打开搜索栏,输入“启用或关闭 Windows 功能”并打开它。

在弹出的窗口中,找到并勾选以下三个功能:
- Hyper-V
- 适用于 Linux 的 Windows 子系统
- 虚拟机平台


点击“确定”按钮,系统将开始安装所选功能。

安装完成后,系统会提示需要重启电脑以完成更改。

第二步:更新WSL
重启后,WSL 的核心组件就安装好了。此时,我们可以打开 PowerShell 或终端,运行以下命令来更新 WSL 到最新版本:
wsl --update
如果一切顺利,你将看到类似“正在安装:适用于 Linux 的 Windows 子系统”的进度提示。
不过,很多用户在初次安装 Linux 发行版时可能会遇到网络问题,报错如下:
PS C:\Windows\system32> wsl --install
适用于 Linux 的 Windows 子系统已安装。
无法解析服务器的名称或地址
这个错误通常是因为 DNS 解析问题,无法访问 raw.githubusercontent.com 这个域名导致的。
二、配置hosts文件以解决网络问题
出现“无法解析服务器的名称或地址”错误,意味着系统无法解析到 GitHub 的域名。我们需要手动配置 hosts 文件来绕过这个问题。
首先,访问 https://site.ip138.com/raw.githubusercontent.com/ 这类 IP 查询网站,查找 raw.githubusercontent.com 当前可用的 IP 地址。

通常,我们会看到一些标记为“泛播 GitHub”的 IP,例如 185.199.110.133。记下其中一个。
修改hosts文件权限(如果需要)
在 Windows 上直接修改 C:\Windows\System32\drivers\etc\hosts 文件时,可能会因为权限不足而保存失败。这时,我们需要修改该文件的权限。
- 右键点击
hosts 文件 -> 属性 -> 安全选项卡。
- 在“组或用户名”列表中,找到并选中 Users (你的主机名\Users)。
- 点击“编辑”按钮。
- 在新窗口中,再次选中 Users (你的主机名\Users)。
- 在下方的权限列表中,勾选“完全控制”和“写入”后面的“允许”复选框。
- 点击“确定”,系统可能会弹出安全警告,选择“是”即可。




添加IP映射
用记事本(以管理员身份运行)打开 hosts 文件,在文件末尾添加一行,将查询到的 IP 映射到域名,然后保存。
185.199.110.133 raw.githubusercontent.com

三、更新并验证WSL
hosts 文件配置完成后,重新打开 PowerShell,再次运行更新命令:
wsl --update
这次应该能够顺利更新。更新完成后,可以通过以下命令查看 WSL 的详细版本信息,确认安装成功。
wsl --version
四、安装Linux发行版(以Ubuntu为例)
WSL 本身是一个平台,我们还需要在上面安装一个具体的 Linux 发行版。首先,查看可在线安装的发行版列表:
wsl --list --online
你会看到一个包含 Ubuntu、Debian、Kali 等多种发行版的列表。这里我们选择安装最新的 Ubuntu 24.04 LTS。
使用以下命令进行安装(NAME 为上面列表中的第一列名称):
wsl --install Ubuntu-24.04
安装过程会自动下载系统映像并初始化。根据提示,你需要为这个 Linux 子系统创建一个 UNIX 用户名 和 密码(这个密码用于 Linux 内部的 sudo 操作,与 Windows 密码无关)。
安装完成后,你会直接进入 Ubuntu 的命令行环境,提示符为 用户名@Windows主机名,这代表你已经成功进入 WSL 的 Linux 子系统。
五、在WSL子系统中安装Docker
如何进入已安装的子系统?
安装完成后,你可以在 Windows 终端(推荐)或 PowerShell 中轻松进入子系统。
- 打开 Windows 终端。
- 点击标签页旁边的下拉箭头。
- 在下拉菜单中,你会看到已安装的子系统名称(如“Ubuntu-24.04”),点击即可进入对应的 Linux 环境。

安装 Docker
在 Ubuntu 子系统的命令行中,直接使用 apt 包管理器安装 Docker。需要注意的是,在 Debian/Ubuntu 的官方仓库中,docker 这个包名指向另一个不同的软件,我们需要的 Docker CE 包名是 docker.io。
运行以下命令:
sudo apt update
sudo apt install docker.io
安装完成后,运行 docker version 命令来验证安装是否成功。
六、配置Docker以便使用
1. 免sudo执行Docker命令
默认情况下,运行 Docker 命令需要 sudo 权限。为了方便,我们可以将当前用户加入 docker 用户组:
sudo usermod -aG docker $USER
newgrp docker
执行后,当前终端会话就可以直接运行 docker 命令而无需 sudo 了。新开的终端可能需要重新登录用户。
2. 配置镜像加速器
为了提升拉取镜像的速度,可以配置国内的镜像加速器。编辑 /etc/docker/daemon.json 文件(如果不存在则创建):
sudo nano /etc/docker/daemon.json
在文件中添加如下内容(以 DaoCloud 镜像为例,你可以替换为其他可用镜像源):
{
"registry-mirrors": ["https://docker.m.daocloud.io"]
}

保存退出后,重启 Docker 服务使配置生效:
sudo systemctl restart docker
3. 设置Docker开机自启
为了让 WSL 启动时 Docker 服务自动运行,执行:
sudo systemctl enable docker
七、拉取镜像并运行容器测试
至此,所有配置都已完成。让我们拉取一个小巧的 alpine 镜像来测试 Docker 是否工作正常。
docker pull alpine
拉取成功后,使用 docker images 查看本地镜像列表。
现在,用这个镜像创建一个简单的容器,执行一条命令:
docker run -it --name hello alpine:latest echo "hello world"
命令执行后会输出“hello world”。使用 docker ps -a 可以查看所有容器(包括已退出的),应该能看到刚刚创建的名为 hello 的容器。
如果以上所有步骤都能顺利完成,那么恭喜你!你已经成功在 Windows 11 家庭版上,通过 WSL 建立了一个功能完整的 Docker 环境,可以畅享容器化开发带来的便利了。这个方法不仅避免了升级系统版本的麻烦,其性能也远超传统虚拟机方案,是家庭版用户体验 Docker 和 云原生 容器化生态的绝佳途径。如果你在配置过程中遇到其他系统环境问题,也可以到 云栈社区 的 运维/DevOps/SRE 板块与更多开发者交流探讨。