Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker机器可以';不要创建两个以上的虚拟机_Docker_Docker Swarm_Docker Machine_Boot2docker - Fatal编程技术网

docker机器可以';不要创建两个以上的虚拟机

docker机器可以';不要创建两个以上的虚拟机,docker,docker-swarm,docker-machine,boot2docker,Docker,Docker Swarm,Docker Machine,Boot2docker,我正在尝试在我的Windows 10 PC上创建一个具有多个节点的Docker Swarm。根据,我们必须先使用Docker machine create创建多个VM。我按照文档创建虚拟交换机“myswitch”,并使用以下命令: docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm1 docker-machine create -d hyperv --hyperv-virtual-switch "mysw

我正在尝试在我的Windows 10 PC上创建一个具有多个节点的Docker Swarm。根据,我们必须先使用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 manager的以下屏幕截图,我们可以看到默认docker虚拟机使用2G,而每个新虚拟机默认使用1G。我的电脑有8G内存,我不确定Docker如何利用电脑资源,以及Docker将使用多少资源

所以我尝试删除所有创建的虚拟机,然后创建一个只有0.5G内存的新虚拟机,但它停留在“等待主机启动”状态,无法创建正确的虚拟机

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...
我的问题是:

  • 创建第三个VM失败的潜在原因是什么 在这种情况下
  • 创建一个只有0.5G的虚拟机有什么问题 记忆
  • 在这种情况下,我应该怎么做,至少创建3个虚拟机

  • 提前谢谢

    首先,我要检查内存限制是否未得到满足

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

    你会看到几行。重要的是
    总物理内存
    ,以及
    可用物理内存

    如果您拥有
    8GB
    内存,并且
    2GB
    (这是一个猜测)最有可能一直被您的机器使用,那么您在
    4GB
    使用情况的帖子中显示的内容可能已经接近极限

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

    在开始向其他方向搜索之前,请报告这些发现

    可以找到更多信息

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

    首先检查你的内存。正如你的研究所表明的那样,这种情况最有可能发生

    创建一个只有0.5G内存的虚拟机有什么问题

    与您当前遇到的问题相同。虚拟机没有空间完成它的任务

    在这种情况下,我应该怎么做,至少创建3个虚拟机


    听起来你可能想增加你的内存。该问题(除非另有证明)是一个物理限制

    感谢您提供查看systeminfo@treedust的提示。我有1395MB的可用物理内存和8039 MB的总物理内存。我刚刚尝试创建一个新的虚拟机两次,分别使用默认1G内存和0.5G内存。他们都失败了。与以前相同的错误消息。您对如何出错有更理想的想法吗?@codigube所以您有两个位于
    1GB
    的虚拟机和位于
    2GB
    的Linux虚拟机?您正在尝试添加
    0.5GB
    vm?如果是这样的话,试着减少到
    1GB
    vm和
    0.5GB
    vmx2。我知道从您报告的内容中,您大约有
    0.5GB
    可用RAM;但是,如果您参考该链接,您可能需要超过
    0.5GB
    的可用RAM。请试试这个。如果它不起作用,请尝试使用
    0.5GB
    的3个虚拟机,或者您可能需要购买更多RAM:(hi@treedust,我已经删除了所有创建的虚拟机,并获得了3.5GB的可用物理内存。但当我尝试创建一个只有0.5GB内存的虚拟机时,它再次失败。但我成功创建了3个900 MB的虚拟机(对于1000MB,第三个失败)。因此,我们似乎无法创建一个只有0.5GB的虚拟机。它可能达到最低要求。但原因肯定是内存问题。如果能够确切地知道每个虚拟机需要多少内存,我们将非常高兴,因此我们不必一个接一个地猜测大小。但无论如何,感谢您的帮助。