—

0:00
0:00

NO.031 · 技术笔记 · Environment Setup

Windows系统下Docker的环境配置

DATE
READ
3 MIN
VIEWS
–

配置流程

  • 本机配置: Windows 11 家庭版 23H2

  • 下载并安装适用于Windows系统的 Docker

  • 将docker的安装路径添加到系统环境变量,通常为

    C:\Program Files\Docker\Docker\resources\bin
  • 启动docker后报错:

    deploying WSL2 distributions provisioning docker WSL distros: ensuring main distro is deployed: deploying "docker-desktop": importing WSL distro "当前计算机配置不支持 WSL2。
    请启用“虚拟机平台”可选组件,并确保在 BIOS 中启用虚拟化。\r\n通过运行以下命令启用“虚拟机平台”: wsl.exe --install --no-distribution\r\n有关信息,请访问 https://aka.ms/enablevirtualization\r\nError code: Wsl/Service/RegisterDistro/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED\r\n" output="docker-desktop": exit code: 4294967295: running WSL command wsl.exe C:\Windows\System32\wsl.exe --import docker-desktop <HOME>\AppData\Local\Docker\wsl\main C:\Program Files\Docker\Docker\resources\wsl\wsl-bootstrap.tar --version 2: 当前计算机配置不支持 WSL2。
    请启用“虚拟机平台”可选组件,并确保在 BIOS 中启用虚拟化。
    通过运行以下命令启用“虚拟机平台”: wsl.exe --install --no-distribution
    有关信息,请访问 https://aka.ms/enablevirtualization
    Error code: Wsl/Service/RegisterDistro/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED
    : exit status 0xffffffff
    checking if isocache exists: CreateFile \\wsl$\docker-desktop-data\isocache\: The network name cannot be found.

解决方法

确认与虚拟机平台有关的设置

  • 打开控制面板
  • 选择程序
  • 在程序与功能中选择启用或关闭Windows功能。勾选以下几个选项:
    “启用或关闭 Windows 功能”窗口:勾选 Hyper-V、Windows 虚拟机监控程序平台、适用于 Linux 的 Windows 子系统和虚拟机平台(红框标出)

启用BIOS中的虚拟化

  • 重启电脑,进入BIOS设置界面(不同的设备进入方式有所不同,具体可参照 此处)
  • 找到与虚拟化技术相关的选项(通常为Intel Vt-x或AMD-V,位于高级选项中)并启用。
  • 启动后,打开任务管理器,选择性能。确认下方的虚拟化显示已启用。
    任务管理器“性能”页:CPU 信息中“虚拟化”一项显示“已启用”(红框标出)

检查并安装WSL

  • 确认当前设备上已安装的wsl

    wsl -l -v
  • 如果显示无已安装的wsl,则进行安装

    • 确认可以下载的wsl版本
      wsl --list --online
      可能会显示:
      NAME                                   FRIENDLY NAME
      Ubuntu                                 Ubuntu
      Debian                                 Debian GNU/Linux
      kali-linux                             Kali Linux Rolling
      Ubuntu-18.04                           Ubuntu 18.04 LTS
      Ubuntu-20.04                           Ubuntu 20.04 LTS
      Ubuntu-22.04                           Ubuntu 22.04 LTS
      Ubuntu-24.04                           Ubuntu 24.04 LTS
      OracleLinux_7_9                        Oracle Linux 7.9
      OracleLinux_8_7                        Oracle Linux 8.7
      OracleLinux_9_1                        Oracle Linux 9.1
      openSUSE-Leap-15.5                     openSUSE Leap 15.5
      SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
      SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
      openSUSE-Tumbleweed                    openSUSE Tumbleweed
    • 选择其中所需的进行安装,如安装Ubuntu-20.04
      wsl --install Ubuntu-20.04
  • 安装时报错的解决办法

    在安装时可能会遇到如下报错:

    WslRegisterDistribution failed with error: 0x80370102
    Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.

    但此时若是按照上述步骤依次完成设置的话,虚拟化应当已经被启用。此时需要查看以下虚拟机监控器的运行情况:

    Get-ComputerInfo | Select-Object HyperV*

    有可能返回如下信息:

    HyperVisorPresent                                 : False
    HyperVRequirementDataExecutionPreventionAvailable : True
    HyperVRequirementSecondLevelAddressTranslation    : True
    HyperVRequirementVirtualizationFirmwareEnabled    : True
    HyperVRequirementVMMonitorModeExtensions          : True

    说明虚拟机监控器没有正常启用。针对该问题的解决方法可以参照 官方教程 。简单来说,以管理员身份运行powershell,执行如下语句后重启系统即可。

    bcdedit /set hypervisorlaunchtype auto

评论COMMENTS

◂ 返回索引