安装WSL(用在docker)

发布于:2025-07-19 ⋅ 阅读:(14) ⋅ 点赞:(0)

学习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 安装器:

👉 点击下载 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

Quit Docker

后重新打开

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 的命令行工具(如grepsedawk)、Shell 脚本(Bash)、版本控制工具(git高级用法)在 WSL 中可以原生运行,比 Windows 的 PowerShell 或 CMD 更符合开发者习惯。
  • 开发工具兼容性:部分开发工具(如docker-composekubectlterraform)在 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 上就能练习lscdchmod等命令,甚至搭建 LAMP/LNMP 等经典架构。
  • 高校计算机课程中涉及的 Linux 实验、操作系统原理实践,也可以通过 WSL 完成。

5. 运维与自动化任务

  • 运维工程师可以在 WSL 中编写和测试自动化脚本(如批量部署脚本、日志分析脚本),直接适配 Linux 服务器环境。
  • 配合cron(Linux 定时任务工具),可以在 WSL 中运行周期性任务,比 Windows 的任务计划程序更灵活。


网站公告

今日签到

点亮在社区的每一天
去签到