You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows10 Pro 1809运行Docker hello-world报错:缺失必要功能

解决Windows 10 Pro 1809上Docker运行hello-world的启动错误

首先,先明确你遇到的错误信息:

docker: Error response from daemon: hcsshim::CreateComputeSystem 0e3c581b7316f66fd396f6007f3260ded7d934c5e6d53c9fedba279b9c0044c2: 虚拟机无法启动,因为未安装必要功能。(额外信息:{"SystemType":"Container","Name":"0e3c581b7316f66fd396f6007f3260ded7d934c5e6d53c9fedba279b9c0044c2","Owner":"docker","IgnoreFlushesDuringBoot":true,"LayerFolderPath":"C:\ProgramData\Docker\windowsfilter\0e3c581b7316f66fd396f6007f3260ded7d934c5e6d53c9fedba279b9c0044c2","Layers":[{"ID":"08298683-92e6-5d81-8efa-07df462bc835","Path":"C:\ProgramData\Docker\windowsfilter\da67c59750c9d72f917f4169d58fff3285b27d01c30c159f437b8ec8bace3fd3"},{"ID":"8ffbf2ed-0796-5433-969d-24c7c60eed76","Path":"C:\ProgramData\Docker\windowsfilter\20785c70b0b36964948ecf0180bbe644306ed1f70686864f3cf476229f3ae054"},{"ID":"d0522a69-fb9e-53ff-8eec-0492669a13de","Path":"C:\ProgramData\Docker\windowsfilter\2c662c56ef3ffafe3f5cb6180ac24154c081866bb0a6c0e3c27fa5a3bcc957a7"}],"HostName":"0e3c581b7316","HvPartition":true,"EndpointList":["63F24577-D177-4DE9-8071-9325D00D5499"],"HvRuntime":{"ImagePath":"C:\ProgramData\Docker\windowsfilter\2c662c56ef3ffafe3f5cb6180ac24154c081866bb0a6c0e3c27fa5a3bcc957a7\UtilityVM"},"AllowUnqualifiedDNSQuery":true})

这个问题根源在于Windows运行容器所需的核心功能没有启用,下面是具体解决步骤:

  • 启用Hyper-V和容器功能(图形界面方式)

    1. 按下Win+R,输入appwiz.cpl回车打开「程序和功能」
    2. 点击左侧的「启用或关闭Windows功能」
    3. 在弹出的窗口中,勾选Hyper-V容器两个选项
    4. 点击「确定」,等待系统安装功能完成后重启电脑
  • 启用Hyper-V和容器功能(PowerShell快捷方式)

    1. 右键开始菜单,选择「Windows PowerShell(管理员)」
    2. 依次执行以下两条命令:
      Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
      Enable-WindowsOptionalFeature -Online -FeatureName Containers -All
      
    3. 命令执行完成后,输入Restart-Computer重启系统
  • 验证Docker Desktop配置

    1. 重启后打开Docker Desktop,等待它完全启动(托盘图标显示绿色)
    2. 进入设置界面,确认当前容器模式是Windows容器(如果之前切换到WSL2模式,可能需要切换回来,Windows 10 1809对WSL2的支持需要额外更新包)
    3. 若坚持使用WSL2模式,确保已安装WSL2内核更新包后再尝试启动容器
  • 修复Hyper-V损坏(如果以上步骤无效)

    1. 管理员PowerShell中执行命令禁用Hyper-V:
      dism /online /disable-feature /featurename:microsoft-hyper-v /all
      
    2. 重启电脑后,再重新启用Hyper-V和容器功能
    3. 检查Hyper-V相关服务是否正常运行:按下Win+R输入services.msc,找到「Hyper-V Virtual Machine Management」服务,确保它的启动类型是「自动」且处于运行状态

完成以上步骤后,再次运行docker run hello-world,应该就能正常启动容器了。

内容的提问来源于stack exchange,提问作者Cameron

火山引擎 最新活动