WSL 2 上的 Docker 安装 - 第一个容器设置
使用 WSL 2 后端在 Windows 10 或 11 上安装 Docker Desktop — 首先是 WSL,然后是 Docker,最后是经过验证的 hello-world 容器。包括对虚拟化、许可和 docker 用户组的诚实检查。
📑章节
- 为什么顺序很重要 - WSL 2 首先,Docker Desktop 第二
- 首先检查 PC - Windows 版本,在任务管理器中使用 winver 和虚拟化
- 使用一个命令安装 WSL 2,重新启动并完成 Ubuntu 第一次运行
- 验证 WSL — 状态、发行版列表和默认版本 2 检查
- 使用 WSL 2 后端安装 Docker Desktop
- 运行第一个容器 - docker --version 和 hello-world
- 诚实的检查 - Docker Desktop 许可和 docker-users 组
📋 概述和分步指南
首先检查您的电脑
具有 WSL 2 后端的 Docker Desktop 需要三件事,跳过这两分钟的检查会让人们损失一个晚上。首先,Windows 版本:您需要 Windows 10 版本 2004 或更高版本,或 Windows 11。按 Win + R,输入 winver 并按 Enter 键查看您的确切版本。
winver
其次,虚拟化必须在 BIOS 或 UEFI 中打开。打开任务管理器,转到性能,然后CPU,然后查找虚拟化:已启用。如果显示“已禁用”,则任何软件设置都无法拯救您 — 首先在 BIOS 中启用 Intel VT-x 或 AMD SVM。第三,保留大约 4 GB 的可用 RAM 和几 GB 的备用磁盘:WSL 2 和 Docker 共享您的机器,它们不会替换它。
先安装 WSL 2
大多数在 Windows 上安装失败的 Docker 都因为一个无聊的原因而失败:顺序错误。 Docker Desktop 期望其下方有一个可用的 WSL 2,因此首先构建基础。以管理员身份打开 PowerShell 并运行一个命令:
wsl --install
让它完成,然后重新启动 PC — 重新启动不是可选的,它会加载虚拟化组件。重新启动后,Ubuntu(默认发行版)完成自己的设置并要求您创建 Linux 用户名和密码。
sudo — 选择一个您能记住的密码,因为您键入密码时屏幕上不会显示任何内容。并且不要让发行版半创建:首次运行从未完成的发行版是 Docker Desktop 在首次启动时挂起的最常见隐藏原因。验证 WSL 2 是否确实准备就绪
在 Docker 靠近机器之前,请使用两个命令确认基础:
wsl --status
wsl -l -v
您的发行版应在列表中显示版本 2。如果显示 1,请设置默认版本并按照命令输出所示转换发行版:
wsl --set-default-version 2
每一层都会在下一层继续之前进行测试,因此如果稍后出现故障,您可以准确地知道问题出在哪一层。
在上面安装 Docker Desktop
仅从 docker.com 下载 Docker Desktop — 第三方下载网站将垃圾与流行的安装程序捆绑在一起。运行安装程序并勾选使用 WSL 2 而不是 Hyper-V 选项;在大多数 PC 上,默认情况下都会勾选此选项。
当安装程序询问时,让它关闭并注销,或者在出现提示时重新启动。 Docker 将您的 Windows 帐户添加到本地 docker-users 组,并且组成员身份仅在重新登录时生效 - 这是大多数指南都会跳过的诚实检查,这就是为什么 Docker 有时会拒绝启动,直到您注销并重新登录。
启动 Docker Desktop 并等待系统托盘中的鲸鱼图标稳定下来并且仪表板报告引擎正在运行。第一次启动很慢;给它几分钟。诚实地接受 Docker 订阅服务协议屏幕 — 这是一个真正的许可证。
docker 命令,请打开 Docker 桌面设置,转到资源,然后WSL 集成,然后打开您的发行版。运行你的第一个容器——Hello World
打开一个新的 PowerShell 或终端窗口并运行两个命令来证明整个链有效:
docker --version
docker run hello-world
docker --version 证明客户端已安装并位于您的 PATH 中。 docker run hello-world 证明了其他一切:Docker 无法在本地找到该镜像,从 Docker Hub 下载它,从中创建一个容器,运行它,并打印它的 Hello from Docker! 消息。如果出现该消息,则您的链将端到端地工作 — 终端、客户端、WSL 2 内的引擎、网络和注册表。
🏷️主题搜索变量和关键字
🎙️ 完整文字记录 — 点击展开
__TOK_28__
__TOK_29__
❓ 常见问题
本教程是 100% 免费学习的吗?
__TOK_30__
初学者可以遵循本指南吗?
__TOK_31__
如果遇到困难我可以在哪里提问?
__TOK_32__