在工作节点上使用'docker run'时遇到问题, 方案如下:
我的环境中有三个虚拟机, 他们已经处于Swarn模式。
VM.1 -> Master node in the Swarm
VM.2 -> Worker node in the Swarm
VM.3 -> Worker node in the Swarm
我还通过以下方式在此环境中创建了覆盖网络:
docker network create --attachable --driver overlay --subnet 10.10.0.0/16 --gateway 10.10.0.1 test-net
并成功创建了覆盖网络
# docker network ls
NETWORK ID NAME DRIVER SCOPE
fc1b70304011 bridge bridge local
f9ca924c1a4d docker_gwbridge bridge local
ea8fc696d6f1 host host local
r311gaq7iobo ingress overlay swarm
bd08afac574d none null local
wb7vfpxzdkyt test-net overlay swarm
但是,一旦我使用'docker run'运行容器并让它从工作节点(VM.2和VM.3)加入“test-net”,那么我将遇到以下问题:
# docker run -itd --name=test --net=test-net kafka:latest
c0324e6c3a8720b291cfc3aa7980846348f7a4450381036927924c52d343f622
docker: Error response from daemon: error creating external
connectivity network:
cannot create network
246bb018a15a6641a9cb26afec30c62eb4714816cfc0a307786c8a209a2418e6
(docker_gwbridge):
conflicts with network
0093ca50dcbcf729aeeae537f424727b674843312ef63ea647db48c7b0077e45
(docker_gwbridge): networks have same bridge name.
但是,如果我在主节点上使用相同的'docker run'命令,它将会工作,我已经将这个问题谷歌了一段时间,但仍然不了解工作节点上发生了什么......
感谢您的阅读和帮助!
答案 0 :(得分:0)
在调查期间,
此问题不是在另一台计算机/发行版上100%复制的。
docker run -itd --name=test --net=test-net kafka:latest
可以使用某些计算机
但是,如果上述方法不适用于特定计算机,
然后您可以尝试先不使用--net
来运行容器,
然后将docker network connect --ip <ipaddress> <network> <container>
用于
在容器上附加特定网络。