Windows10 家庭版安装 Docker Desktop

274 阅读3分钟

直接安装是不行的。Windows10 家庭版PC从硬件到软件缺少以下系统设置或软件:

  1. BIOS 的 VT-x (名称可能是 Intel Virtualization Technology) 或 VT-d 选项需要启用
  2. 启用或关闭 Windows 功能面板 中勾选 虚拟机平台适用于Linux的Windows子系统
  3. WSL1 需要升级到 WSL2
  4. 系统需要安装 Hyper-V

1. 启用 VT-x 或 VT-d

开启或重启计算机,在进入用户界面之前按下 F12 进入 BIOS 配置界面。找到 Intel Virtualization Technology 并设置为 Enabled

如果 BIOS 不存在 Intel Virtualization Technology 选项,则尝试找到 VT-d 并设置为 Enabled

最后保存设置并进入系统即可。

v2-67a001654d2129a4772751cda2a855b3_720w.png

2. 勾选 虚拟机平台 和 适用于Linux的Windows子系统

Windows 设置 面板中搜索 启用或关闭Windows功能 进入 Windows 功能配置页面。

检查并勾选 虚拟机平台适用于 Linux 的 Windows 子系统 这两项。

1700651352157.jpg

1700652179068.jpg

3. 升级 WSL

请查看 在 Windows10 中基于 WSL2 安装 Linux,以完成 WSL2 的升级。不过这里不需要安装 Ubuntu 等子系统,只需要完成 WSL 的升级即可。

4. 安装 Hyper-V

Windows10 家庭版默认是没有安装 Hyper-V 的,因此需要我们手动安装。

首先用编辑器新增一个脚本文件 Hyper-V.cmd,内容如下:

pushd "%~dp0"

dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt

for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"

del hyper-v.txt

Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

接着,鼠标右击该文件并以管理员身份运行该文件。

等待窗口处理完成后,在输入提示处输入 Y,计算机会自动重启。到此,我们便完成了 Hyper-V 管理器的安装。

再次打开计算机后,我们能在 启用或关闭 Windows 功能面板 中发现 Hyper-V 的选项了。

1700651496404.jpg

5. 安装 Docker Desktop

上面的 4 个步骤都完成后,接下来就可以 下载 Docker Desktop 并进行安装了。你大概率能成功安装并开启 Docker 了。

安装完成后,最好把 Docker 的镜像源指向国内的供应方。操作方法是在 Docker Desktop 界面中依次选择 Setting -> Docker Engine,然后为配置文件添加 "registry-mirrors" 项即可。示例如下:

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://dockerproxy.com"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "200m",
    "max-file": "3",
    "compress": "true"
  }
}

最后,为了检验我们的成果,打开命令行窗口,输入并执行 docker run hello-world,看到 Hello from Docker! 则说明我们以后就可以愉快地使用 Docker 啦!

不过需要提醒的是,虚拟机软件如 VirtualBoxDocker 无法同时在 Windows 中运行!因为 Docker 要求启动 Hyper-V,而虚拟机软件要求关闭 Hyper-V。如果某一时刻需要运行虚拟机软件,则执行以下命令关闭 Hyper-V,重启系统后再打开虚拟机。

bcdedit /set hypervisorlaunchtype off

如果希望使用 Docker 软件,则执行以下命令开启 Hyper-V,重启后再使用 Docker 即可。

bcdedit /set hypervisorlaunchtype auto

最后提醒一下,Hyper-V 会占用部分 IPv4 端口,如果您发现某个接口被占用又找不到相关进程,可以执行以下命令查看端口是否处于端口排除范围:

netsh interface ipv4 show excludedportrange protocol=tcp

然后您就可以继续选择使用其他接口或关闭 Hyper-V 并重启了。