我创建了一个用户定义的可连接覆盖群网络。我可以检查它,但是当我尝试将容器附加到它时,在管理器节点上运行时会出现以下错误:
$ docker network connect mrunner baz
Error response from daemon: network mrunner not found
网络已定义且可连接
$ docker network inspect mrunner
[
{
"Name": "mrunner",
"Id": "kviwxfejsuyc9476eznb7a8yw",
"Created": "2019-06-20T21:25:45.271304082Z",
"Scope": "swarm",
"Driver": "overlay",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "10.0.1.0/24",
"Gateway": "10.0.1.1"
}
]
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": null,
"Options": {
"com.docker.network.driver.overlay.vxlanid_list": "4098"
},
"Labels": null
}
]
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
4a454d677dea bridge bridge local
95383b47ee94 docker_gwbridge bridge local
249684755b51 host host local
zgx0nppx33vj ingress overlay swarm
kviwxfejsuyc mrunner overlay swarm
a30a12f8d7cc none null local
uftxcaoz9rzg taskman_default overlay swarm
为什么该网络连接失败?
**这是在这里回答的:https://github.com/moby/moby/issues/39391
答案 0 :(得分:0)
请参见this:
要创建用于群服务的覆盖网络,请使用以下命令:
$ docker network create -d overlay my-overlay
要创建覆盖网络,群集服务或独立容器可使用该覆盖网络与在其他Docker守护程序上运行的其他独立容器进行通信,请添加--attachable标志:
$ docker network create -d overlay --attachable my-attachable-overlay
因此,默认情况下,独立容器无法使用叠加网络,如果需要,则需要添加--attachable
才能使独立容器使用该网络。
答案 1 :(得分:0)
感谢docker git repo上的thaJeztah
:
解决方案如下,但从本质上讲,以流服务为中心:
docker network create -d overlay --attachable --scope=swarm somenetwork
docker service create --name someservice nginx:alpine
如果要在创建服务后将其连接到somenetwork,请更新服务;
docker service update --network-add somenetwork someservice
此后; someservice服务的所有任务都将连接到somenetwork(除了它们所连接的其他覆盖网络之外)。
https://github.com/moby/moby/issues/39391#issuecomment-505050610