我正在运行安装了最新更新的Windows 10。我正在尝试使用在Windows主机上运行docker Linux容器的多个物理主机来设置一个群。 当我跑步时
docker swarm init --advertise-addr 10.154.26.150 --listen-addr 10.154.26.150:2377
其中
10.154.26.150
代表我当前机器的物理地址(未来的群体管理器) 我显然收到了
Error response from daemon: manager stopped: failed to listen on remote API address: listen tcp 10.154.26.150:2377 bind: cannot assign requested address
因为运行Linux容器的Windows的docker使用hyper-v vm,并且不知道我正在尝试指定的地址。 所以这里有一个问题,如果在这种情况下运行swarm模式的可能性很小,那么我的其他主机将能够通过物理网络加入新的群体。
答案 0 :(得分:4)
如果您正在使用“Docker for Windows”(在Hyper-V中运行Moby VM并模拟localhost),那么单个节点Swarm设置就很容易了。它尚未设计为可以轻松加入外部机器。
如果你想让一个3节点的swarm扩展你的测试,他们都可以轻松直接访问彼此,那么我建议使用docker-machine在运行boot2docker的Hyper-V中再创建3个VM,就像这样:
docker-machine create --driver hyperv --hyperv-virtual-switch "Primary Virtual Switch" node1
docker-machine create --driver hyperv --hyperv-virtual-switch "Primary Virtual Switch" node2
docker-machine create --driver hyperv --hyperv-virtual-switch "Primary Virtual Switch" node3
注意:为此,1。确保您处于PowerShell管理模式,因此docker-machine可以控制Hyper-V和2.您需要创建一个“外部”Hyper-V交换机并使用它创建VM的名称。
有关交换机设置以及更改CPU和内存are in the docker-machine docs等其他选项的详细信息。
然后,您可以更改docker CLI以使用& docker-machine env nodeX | Invoke-Expression
直接控制每个人,并使用docker-machine ssh nodeX
等ssh进行控制。
我使用此设置,效果很好!