docker-机器不能创建两个以上的虚拟机
docker-machine can't create more than two VMs
我正在尝试在我的 Windows 10 PC 上创建一个具有多个节点的 Docker Swarm。根据Docker official documentation,我们必须先使用docker-machine create来创建多个虚拟机。我按照文档创建虚拟交换机“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 将使用多少资源。
所以我尝试删除所有创建的虚拟机,然后创建只有 0.5G 内存的新虚拟机,但它卡在 "waiting for host to start" 并且未能创建正确的虚拟机。
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...
我的问题是:
- 创建第三个虚拟机失败的潜在原因是什么
在这种情况下?
- 创建一个只有0.5G的虚拟机有什么问题
记忆?
- 无论如何,在这种情况下我应该怎么做才能至少创建 3 个虚拟机?
提前致谢!
首先我会检查我的 RAM 限制没有被满足。
要执行此操作,请打开命令提示符并 运行 命令 systeminfo
您会看到几行。重要的是 Total Physical Memory
和 Available Physical Memory
.
如果你有 8GB
的 ram 并且 2GB
(这是一个猜测)很可能总是被你的机器使用,你可能会接近你所展示的极限在您 post 的 4GB
用法中。
您还可以查看交换 space / 虚拟内存大小,看看有多少可用或正在使用。
请在开始向另一个方向搜索之前报告这些发现。
可以找到更多信息 here。
what's the potential reason for the failure of creating the third VM in this case?
首先检查您的 RAM。正如您的研究表明的那样,情况很可能如此。
And what's the problem of creating a VM with only 0.5G memory?
与您目前遇到的问题相同。 VM 没有空间来执行它的任务。
What should I do anyway, in this case, to create 3 VMs at least?
听起来您可能想要增加 RAM。问题(除非可以证明)是物理限制。
我正在尝试在我的 Windows 10 PC 上创建一个具有多个节点的 Docker Swarm。根据Docker official documentation,我们必须先使用docker-machine create来创建多个虚拟机。我按照文档创建虚拟交换机“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 将使用多少资源。
所以我尝试删除所有创建的虚拟机,然后创建只有 0.5G 内存的新虚拟机,但它卡在 "waiting for host to start" 并且未能创建正确的虚拟机。
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...
我的问题是:
- 创建第三个虚拟机失败的潜在原因是什么 在这种情况下?
- 创建一个只有0.5G的虚拟机有什么问题 记忆?
- 无论如何,在这种情况下我应该怎么做才能至少创建 3 个虚拟机?
提前致谢!
首先我会检查我的 RAM 限制没有被满足。
要执行此操作,请打开命令提示符并 运行 命令 systeminfo
您会看到几行。重要的是 Total Physical Memory
和 Available Physical Memory
.
如果你有 8GB
的 ram 并且 2GB
(这是一个猜测)很可能总是被你的机器使用,你可能会接近你所展示的极限在您 post 的 4GB
用法中。
您还可以查看交换 space / 虚拟内存大小,看看有多少可用或正在使用。
请在开始向另一个方向搜索之前报告这些发现。
可以找到更多信息 here。
what's the potential reason for the failure of creating the third VM in this case?
首先检查您的 RAM。正如您的研究表明的那样,情况很可能如此。
And what's the problem of creating a VM with only 0.5G memory?
与您目前遇到的问题相同。 VM 没有空间来执行它的任务。
What should I do anyway, in this case, to create 3 VMs at least?
听起来您可能想要增加 RAM。问题(除非可以证明)是物理限制。