【发布时间】:2019-03-13 19:46:21
【问题描述】:
我正在尝试在我的 Windows 10 PC 上创建一个具有多个节点的 Docker Swarm。根据Docker official documentation,我们必须先使用 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 将使用多少资源。
所以我尝试删除所有创建的虚拟机,然后创建只有 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...
我的问题是:
- 创建第三个虚拟机失败的潜在原因是什么 在这种情况下?
- 创建一个只有0.5G的VM有什么问题 记忆?
- 无论如何我应该怎么做,在这种情况下,至少创建 3 个虚拟机?
提前致谢!
【问题讨论】:
标签: docker docker-swarm docker-machine boot2docker