学习docker时候,打开docker软件,界面是:
wsl --list --verbose
哦莫我电脑没有安装WSL。
你的系统还没有安装 WSL,执行
wsl --list --verbose
提示:“未安装适用于 Linux 的 Windows 子系统”
说明你 Docker Desktop 无法运行,因为它依赖 WSL2 运行 Linux 容器。
1.安装WSL
1.1 打开 PowerShell(管理员权限),复制以下命令粘贴运行:
第一条:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
第二条:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
✅ 这两个是运行 WSL2 和虚拟机的基础。
1.2:重启电脑
启用功能后务必 重启系统一次,否则后面会出错。
1.3:下载安装 WSL2(如果之前不能自动安装)
手动下载官方最新版 WSL 安装器:
下载后运行这个 .msix
或 .exe
文件即可。
wsl --install
(关掉vpn才能下载)
哈哈哈哈一个蓝色的企鹅?
1.4 安装 Ubuntu 系统
重启后,在 PowerShell(管理员)运行:(妈的,科学上网才能下载)
wsl --install -d Ubuntu
如果成功,系统会自动开始安装 Ubuntu。
别急着关掉,等一会,还要输入用户名和密码。
1.5:设置为 WSL2(可选)
有时系统默认用的是 WSL1,你可以强制设置:
wsl --set-default-version 2
wsl --list --verbose
docker --version
1.6:重启 Docker Desktop
然后再打开 Docker Desktop,它就会使用你刚安装的 WSL2 和 Ubuntu。
❗ 常见错误说明
- "已禁止(403)":你很可能是在公司/校园网络或开了代理,导致无法连接微软更新服务器(被拦截)。
- ✅ 解决方法:
- 切换网络(换热点/关掉代理)再试
- 手动下载而不是
wsl --update
- 手动下载而不是
🆘 如果你不确定电脑是否支持 WSL2
打开 PowerShell,运行:
systeminfo
查看是否支持 “虚拟化已启用: 是” 和 Windows 版本是否为 Win10 2004 或更高版本。
(我好像框错了)
打开docker的界面:
测试 Docker 是否真正运行成功
我们来执行一个简单的测试容器:
🧪 测试命令
docker run hello-world
如果成功,会看到输出类似:
Hello from Docker!
This message shows that your installation appears to be working correctly.
这个错误是因为我没有启动docker软件。
启动后:
重新输入
📦 该命令会做什么?
- 自动从 Docker Hub 下载一个名为
hello-world
的测试镜像 - 运行后打印一段欢迎信息,验证 Docker 引擎是否正常
2:确认 Docker Desktop 是否已启动
👉 方法:
- 在任务栏右下角看看有 🐳 Docker 图标没
- 没有?就在开始菜单搜索
Docker Desktop
,手动双击打开 Docker Desktop!
启动过程中会看到加载动画,一般需要 20~60 秒。
✅ 2.1:确认 Docker Desktop 正常加载
启动成功后:
- Docker 图标变成绿色鲸鱼 ✅
- 鼠标右键图标 -> Settings -> Resources -> WSL integration
确保你的 Ubuntu 是选中的 ✅
✅ 2.2:关闭 VPN 重试
很多 VPN(尤其是全局代理)会导致 Docker Desktop 启动失败或与 WSL 通信失败。
建议:
- 暂时关闭 VPN,重新退出并启动 Docker Desktop
步骤 |
操作 |
1 |
手动启动 Docker Desktop 应用 |
2 |
右键图标 -> Settings -> Resources -> 确保 Ubuntu 已启用 WSL integration |
3 |
暂时关闭 VPN 或切换直连模式 |
4 |
后重新打开 |
5 |
尝试管理员权限运行 Docker Desktop |
WSL安装好后:(我这个是学习docker内容,才需要用到WSL)
既然已经成功进入 Ubuntu 终端,接下来可以继续完成 Docker 的安装(如果还没完成),步骤如下:
(wsl软件启动页面)
(鼠标右键就是复制粘贴进去了)
# 1. 更新系统包
sudo apt update && sudo apt upgrade -y
# 2. 安装 Docker 依赖
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# 3. 添加 Docker 官方源
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 4. 安装Docker
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
# 5. 启动 Docker 服务
sudo service docker start
# 6. 测试 Docker 是否可用
sudo docker run hello-world
ok,安装好了。
在wsl 测试是否能用
输入 docker run hello-world
返回错误,说我没有权限。当非 root 用户尝试访问 Docker 守护进程的 Unix 套接字(/var/run/docker.sock
)时,如果没有相应权限,就会出现这个错误。
- 当你安装 Docker 后,若没有把用户添加到
docker
组,那么普通用户执行 Docker 命令时就会因为权限不足而失败。
输入(分别)
sudo usermod -aG docker $USER
newgrp docker
#重新运行一遍,看看有没有错误
docker run hello-world
- WSL:WSL(适用于 Linux 的 Windows 子系统)为在 Windows 上运行 Linux 环境提供了便利,你可以在其中安装 Docker,其操作体验与在原生 Linux 系统上几乎一致。由于 Docker 最初是基于 Linux 系统开发的,在 WSL 这样的 Linux 环境中学习,能更好地理解 Docker 的底层原理和运行机制,也更符合 Docker 的常见生产环境,适合深入学习和进行一些复杂的 Docker 操作及实践项目。
- CMD 或 PowerShell:在 Windows 系统中,安装 Docker Desktop 后,会自动配置好相关环境变量,此时可以通过 CMD 或 PowerShell 来执行 Docker 命令。它们操作方便,无需切换到其他复杂的环境,对于习惯在 Windows 环境下操作,且只是想简单了解 Docker 基本命令和功能的学习者来说较为合适。
- Docker Desktop:这是适用于 Windows 和 Mac 的 Docker 版本,提供了图形界面,可直观地管理 Docker 容器、镜像等资源,方便初学者快速上手,了解 Docker 的基本操作,如创建、启动、停止容器等,同时也可以结合其附带的 Docker CLI 进行命令行操作,将图形化操作与命令行学习相结合。
3.WSL 的核心用途:为什么需要它?
简单来说,WSL 的核心价值是让 Windows 用户无需双系统、虚拟机,就能高效使用 Linux 环境,解决了 Windows 和 Linux 生态的兼容性问题。具体场景包括:
1. 开发环境搭建(最常用场景)
- 跨平台开发:很多编程语言(如 Python、Node.js、Go)的工具链、依赖库在 Linux 上更完善,且部署环境通常是 Linux 服务器。用 WSL 可以在 Windows 上模拟 Linux 开发环境,避免 “Windows 开发正常,Linux 部署报错” 的问题。
- 脚本与工具支持:Linux 的命令行工具(如
grep
、sed
、awk
)、Shell 脚本(Bash)、版本控制工具(git
高级用法)在 WSL 中可以原生运行,比 Windows 的 PowerShell 或 CMD 更符合开发者习惯。 - 开发工具兼容性:部分开发工具(如
docker-compose
、kubectl
、terraform
)在 Linux 上的支持更成熟,WSL 可以直接使用这些工具而无需额外配置。
2. 运行 Linux 专属软件
- 服务器相关工具:例如 Nginx、MySQL、Redis 等服务,在 WSL 中可以像在 Linux 服务器上一样安装和配置,方便本地测试服务器环境。
- 开源工具与框架:很多开源项目(如 Apache Hadoop、Elasticsearch)的官方文档和部署教程以 Linux 为基准,WSL 可以直接按照文档步骤操作,避免 Windows 适配问题。
3. Docker 等容器化工具(你正在用的场景)
- Docker 在 Windows 上的运行依赖 WSL 2(或 Hyper-V),因为 Docker 的核心组件(Docker Engine)是基于 Linux 内核的。WSL 2 提供了轻量、高效的 Linux 内核环境,比传统虚拟机更适合运行 Docker,这也是你需要用 WSL 的直接原因。
- 但注意:不是只有 Docker 需要 WSL,而是 Docker 在 Windows 上的最佳运行方式依赖 WSL(尤其是 WSL 2)。
4. 学习 Linux 与编程
- 对于新手来说,WSL 是学习 Linux 命令、Shell 脚本、服务器管理的低成本工具:无需单独安装 Linux 系统,在 Windows 上就能练习
ls
、cd
、chmod
等命令,甚至搭建 LAMP/LNMP 等经典架构。 - 高校计算机课程中涉及的 Linux 实验、操作系统原理实践,也可以通过 WSL 完成。
5. 运维与自动化任务
- 运维工程师可以在 WSL 中编写和测试自动化脚本(如批量部署脚本、日志分析脚本),直接适配 Linux 服务器环境。
- 配合
cron
(Linux 定时任务工具),可以在 WSL 中运行周期性任务,比 Windows 的任务计划程序更灵活。