Creé una red de enjambre de superposición acoplable definida por el usuario. Puedo inspeccionarlo, pero cuando intento adjuntarle un contenedor, aparece el siguiente error cuando se ejecuta en el nodo del administrador:
$ docker network connect mrunner baz Error response from daemon: network mrunner not foundLa red está definida y es conectable
$ 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¿Por qué falla esta conexión de red?
** Esto fue respondido aquí: https://github.com/moby/moby/issues/39391
Mira esto :
Para crear una red superpuesta para usar con servicios de enjambre, use un comando como el siguiente:
$ docker network create -d overlay my-overlayPara crear una red superpuesta que puedan usar los servicios de enjambre o los contenedores independientes para comunicarse con otros contenedores independientes que se ejecutan en otros demonios de Docker, agregue la marca --attachable:
$ docker network create -d overlay --attachable my-attachable-overlay Por lo tanto, de forma predeterminada, la red de superposición no puede ser utilizada por contenedores independientes, si insiste, debe agregar --attachable para permitir que esta red sea utilizada por contenedores independientes.
Gracias a thaJeztah en docker git repo:
La solución es la siguiente, pero esencialmente hacer que el servicio de flujo se centre:
docker network create -d overlay --attachable --scope=swarm somenetwork docker service create --name someservice nginx:alpineSi desea conectar el servicio a alguna red después de que se haya creado, actualice el servicio;
docker service update --network-add somenetwork someserviceDespués de este; todas las tareas del servicio someservice se conectarán a somenetwork (además de otras redes superpuestas a las que estaban conectados).
https://github.com/moby/moby/issues/39391#issuecomment-505050610