在Windows上安装后无法启动Docker


69

我是Docker的新手。安装Docker Toolbox(OS:Windows 10)之后,我运行Docker Quickstart Terminal,并在控制台中看到以下内容:

Running pre-create checks...
Error wirh pre-create check: "Hyper-V is installed. VirtualBox won't boot a 64bits VM when Hyper-V is activated. It it's installed but deactivated, you can use --virtualbox-no-vtx-check to try anyways"
Look like something went wrong in step 'Checking if machine default exists'...
Press any key to continue...

我做错了什么?系统和安装步骤的所有检查均从此处进行

非常感谢您的帮助!


您是否尝试过卸载/停用Hyper-V?还是尝试使用--virtualbox-no-vtx-check运行?如果是这样,您仍然会收到错误消息?
Fermin

您的系统虚拟化是否处于活动状态?如文件所示?
Riddhi Gohil

3
停用Hyper-V解决了该问题!谢谢大家
丹尼斯Starkov

@DenisStarkov是否忽略/得到了警告“未启用Hyper-V功能。是否要启用该功能以使Docker能够正常工作?您的计算机将自动重启。注意:Docker Toolbox将不再起作用。”
Winnemucca

Answers:


13

我在Windows 10计算机上安装Docker Toolbox时遇到了相同的错误。

解:

  1. 安装Docker Community Edition(不是Docker Toolbox)
  2. 启用Hyper-V

打开控制面板->系统和安全性->程序(左面板)->打开或关闭Windows功能->选中Hyper-V框

从2017年的Win 10开始,如果您没有Hyper-V选项,则您的Windows操作系统不是企业版。同样,Docker在Intel处理器(不是AMD)上似乎工作得更好。

  1. 将C:\ Program Files \ Docker \ Docker \ resources \ bin添加到环境变量中的路径中。
  2. 打开Git Bash并键入docker-compose up,现在该命令应该可以使用了。

如果您没有GitBash,请下载它。


1
只是为了明确起见,Docker Toolbox是一个较早的工具,早于Docker for Windows。它安装了VirtualBox,用于运行我们所需的Linux VM。然后是HyperV和带有虚拟机管理程序支持的Windows 10,使您可以本地运行容器。您不再需要Docker Toolbox。它由Docker Compose包含。
Nikhil Silveira

56

Hyper-V和VirtualBox相互冲突。

您可以卸载Hyper-V或运行

docker-machine create -d virtualbox --virtualbox-no-vtx-check test

资源


卸载hyper-V对我没有帮助,当我这样做时,它在预安装检查中就停滞了。虽然运行替代方案似乎正在工作。
约翰·尼古拉斯

1
使用Windows 10,我连续两次运行此命令,出现蓝屏
deFreitas

@deFreitas在此处不可复制
ArgonQQ '18

这可以工作,但是创建的VM实例存在一些问题...这导致另一个Hyper-V错误。discuss.erpnext.com/t/...
Jaider

33

Docker支持Hyper-V作为驱动程序

您需要执行以下步骤:

  • 创建虚拟交换机,请参阅本文就如何做到这一点

  • 使用该网络交换机和hyper-V驱动程序创建一个docker计算机。

    docker-machine create -d hyperv --hyperv-virtual-switch "name of the virtual switch created above" default
    

是-d驱动程序?
Winnemucca

1
我遵循了这些指示,仍然遇到相同的错误。我还应该尝试什么?
tatmanblue

谢谢。这对我有用。就像SELinux:不要只是禁用它,而要使用它
CrazyMerlin

感谢您的修复,我必须采取的额外步骤,因为Hyper-V PowerShell Module is not available在按照您的步骤进行操作后仍然会引发
Raza Ahmed

4

我遇到了同样的问题,这篇博客文章解决了这个问题。作者为您完成将--virtualbox-no-vtx-check标志添加到docker shell脚本的步骤。

Virtualbox和Hyper-V不能一起使用。我不是作者。



2

查看是否在运行时:

docker-machine create -d hyperv --hyperv-virtual-switch "Virtual Switch" default

你得到 Error with: pre-create check: "Hyper-V PowerShell Module is not available"

如果是这样,只需在Docker(桌面上的图标)-> settings-> expose daemon on TCP上启用...


非常感谢。超级:)
图拉西兰

1

您需要禁用虚拟机监控程序才能在虚拟机启动之前检查使用VT-x的新应用程序:

  1. 以管理员身份打开命令提示符

  2. 运行bcdedit以检查虚拟机监控程序状态:

  3. 检查虚拟机监控程序启动类型。

  4. 如果设置为自动,则将其禁用:

    bcdedit /set hypervisorlaunchtype off 
    
  5. 重新启动主机并再次启动VirtualBox

执行完上述步骤后,我再次打开Docker Quickstart终端,它运行正常。


0

我按下了键盘上的Windows按钮。输入“ Hyper-V管理器”。它打开了“ Hyper-V管理器”。然后,我右键单击我的计算机名称。可以选择“停止”。我选择了此选项。它停止了我机器上的“ Hyper-V”,然后Kitematic正常运行,即下载了hello-world-nginx并显示了网页。

注意:这很奇怪,我不确定为什么。完成上述步骤后,现在当我使用Hyper-V Manager重新启动Hyper-V时,Kitematic仍在工作并下载图像。任何人都可以评论为什么Hyper-V也可以运行时它现在仍然可以工作吗?谢谢。

好阿里·阿桑(Ali Ahsan)


0

@Gene建议的解决方案是正确的,并且在以下情况下可以完美工作:

  1. 一个有Windows专业版
  2. Hyper-V管理工具和Hyper-V平台均已启用

有时情况并非总是如此。这是做什么的:

检查Windows版本:

要检查哪个版本,请右键单击Windows键并选择“系统”。向下滚动至Windows规格并查看[Edition]

检查Hyper-V平台(虚拟化)

要启用Hyper-V平台,必须打开虚拟化。通常这是通过BIOS完成的。

在HP笔记本电脑上,这是通过BIOS完成的。

  • 在启动时单击Ctrl + F10
  • 按右箭头键进入“系统配置”选项卡。
  • 选择虚拟化技术,然后按Enter键。
  • 选择启用,然后按Enter键。

完成这些步骤后,即可:

  1. 搜索打开或关闭Windows功能。
  2. 向下滚动到Hyper-V
  3. 勾选此框(确保您没有看到勾选框而不是黑框,这表明某些功能未启用)

重新启动时,docker应该正在运行……祝您好运!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.