起初,我的Windows 10上的docker在正式版上运行良好。
然后我出于某种原因删除了Hyper-V中的MobyLinuxVM。之后,码头工人无法工作。
然后我关闭了Hyper-V的功能并卸载了docker(当然计算机已重启)。
然后我重新安装docker并再次打开Hyper-V的功能。但码头工作者仍然无法工作。
我在google上尝试了一些解决方案,但问题仍然存在 我在docker启动期间检查了MobyLinuxVM的状态,发现从未创建MobyLinuxVM。
有人知道如何解决?
这是屏幕截图和日志:
respond_to do |format|
format.json { render json: @versions }
end
答案 0 :(得分:11)
然后我重新安装docker并再次打开Hyper-V的功能。
确保首先打开Hyper-V的功能(并重新启动)
然后reinstall Docker for Windows。
请参阅" What to know before you install":
当前版本的Docker for Windows在64位Windows 10 Pro,Enterprise和Education(1511年11月更新,Build 10586或更高版本)上运行。
必须启用Hyper-V软件包才能使Docker for Windows正常运行。如果需要,Docker for Windows安装程序将为您启用它。
您的特定错误消息在docker/for-win
issue 248中报告,之前在issue 214
Unable to create:
The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop:
The object already exists.
如noted in this comment和here,请尝试删除已保存的VM并重新启动。
你应该在
C:\Program Files\Docker\Docker\resources
运行命令 因此,让我改进您可以运行的命令序列:
com.docker.service
cd 'C:\Program Files\Docker\Docker\resources'
.\MobyLinux.ps1 -Destroy
C:\Users\Public\Public Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx
)是否已删除.\MobyLinux.ps1 -Create
答案 1 :(得分:8)
问题解决了!!
我尝试了VonC提供的方法,虽然仍然无法工作,但我发现有一件事,当我运行命令.\MobyLinux.ps1 -Create
时,它会提示VNAT创建错误。然后我打开网络适配器列表,发现有很多"断开的适配器"这是由Hyper-V创建的(在这段时间里,我已经关闭并开启了几次,每次它都不能识别Docker可以使用的旧适配器)。所以docker找到的适配器与Hyper-V找不到的适配器匹配,并且会提示"对象已经存在"并且不会创造新的。
最后,我们需要做的是打开设备管理器并删除不必要的适配器 - 然后docker成功启动了!
最后,非常感谢VonC的第一个答案
答案 2 :(得分:0)
它不支持hyperV单元路径上的空格 您需要在hyperV配置上配置一个没有空格的路径。
答案 3 :(得分:0)
我也遇到了类似的问题, 就我而言,我试图删除MobyLinux VM,不知道所有依赖关系,因此当Docker启动时,虚拟机无法在Hyper-V中创建DockerNAT虚拟交换机。 Docker尝试创建一个正在运行的虚拟机(启动docker进行监视时打开Hyper-V),但是vm失败并停止。
我通过以下方式解决了该问题:
卸载Docker
我更改了默认的hyper-v虚拟机文件夹HyperVsettings createdFolder
重新安装Docker。
Docker在新文件夹中创建了一个新的MobyLinux文件,现在一切正常。