docker-machine不能创建两个以上的VM

时间:2019-03-13 19:46:21

标签: docker docker-swarm docker-machine boot2docker

我正在尝试在Windows 10 PC上创建具有多个节点的Docker Swarm。根据{{​​3}},我们必须首先使用 docker-machine create 创建多个VM。我按照文档创建了虚拟交换机“ myswitch ”,并使用以下命令:

docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm1
docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm2

成功创建了两个虚拟机:

 PS C:\Users\richard> docker-machine ls
 NAME    ACTIVE   DRIVER   STATE     URL                        SWARM   DOCKER     ERRORS
 myvm1   -        hyperv   Running   tcp://192.168.1.125:2376           v18.09.3
 myvm2   -        hyperv   Running   tcp://192.168.1.128:2376           v18.09.3

但是当我尝试创建第三个节点时(3个节点对Swarm集群是有益的),它总是由于某些原因而失败:

PS C:\Users\richard> docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm3
Running pre-create checks...
Creating machine...
(myvm3) Copying C:\Users\richard\.docker\machine\cache\boot2docker.iso to C:\Users\rudeng\.docker\machine\machines\myvm3\boot2docker.iso...
(myvm3) Creating SSH key...
(myvm3) Creating VM...
(myvm3) Using switch "myswitch"
(myvm3) Creating VHD
(myvm3) Starting VM...
Error creating machine: Error in driver during machine creation: exit status 1

我在网上做了一些研究。一个潜在的原因可能是内存不足,因此第三个VM无法正常启动。如果我们查看Windows上Hyper-V管理器的以下屏幕截图,可以看到默认docker VM占用2G,每个新VM默认使用1G。我的PC具有8G内存,我不确定Docker如何利用PC资源以及Docker将使用多少资源。

Docker official documentation

所以我试图删除所有创建的VM,然后创建仅具有0.5G内存的新VM,但是它停留在“等待主机启动”并无法创建正确的VM。

PS C:\Users\richard> docker-machine create -d hyperv --hyperv-memory "512" --hyperv-virtual-switch "myswitch" myvm3
Running pre-create checks...
Creating machine...
(myvm2) Copying C:\Users\richard\.docker\machine\cache\boot2docker.iso to C:\Users\rudeng\.docker\machine\machines\myvm2\boot2docker.iso...
(myvm2) Creating SSH key...
(myvm2) Creating VM...
(myvm2) Using switch "myswitch"
(myvm2) Creating VHD
(myvm2) Starting VM...
(myvm2) Waiting for host to start...

我的问题是:

  1. 创建第三个VM失败的潜在原因是什么 在这种情况下?
  2. 创建仅0.5G的VM会有什么问题 记忆?
  3. 在这种情况下,至少应该创建3个VM,我该怎么办?

谢谢!

1 个答案:

答案 0 :(得分:2)

首先,我将检查是否未满足我的RAM限制。

要执行此操作,请打开命令提示符并运行命令systeminfo

您将看到几行。重要的是Total Physical MemoryAvailable Physical Memory

如果您有8GB的ram且2GB(这是一个猜测)很可能一直被您的计算机使用,则您的显示内容可能已接近极限4GB用法的帖子。

您还可以查看交换空间/虚拟内存的大小,并查看有多少可用或正在使用中。

请先报告这些发现,然后再开始寻找其他方向。

更多信息here

  

在这种情况下创建第三个VM失败的潜在原因是什么?

首先检查您的RAM。正如您的研究表明的那样,很可能是这种情况。

  

创建仅具有0.5G内存的VM会有什么问题?

您当前遇到的相同问题。 VM没有空间来完成其任务。

  

在这种情况下,至少应该创建3个VM,我该怎么做?

听起来像您可能想要增加RAM。该问题(除非可以证明)是物理限制。