no se puede usar el puente definido por el usuario en el enjambre componer el archivo yaml
Aprendí dedocumentación de la ventana acoplable que no puedo usar el docker DNS para encontrar contenedores usando sus nombres de host sin utilizar la red de puente definida por el usuario. Creé uno usando el comando:
docker network create --driver=overlay --subnet=172.22.0.0/16 --gateway=172.22.0.1 user_defined_overlay
e intenté implementar un contenedor que lo usa. componer archivo se ve así:
version: "3.0"
services:
web1:
image: "test"
ports:
- "12023:22"
hostname: "mytest-web1"
networks:
- test
web2:
image: "test"
ports:
- "12024:22"
hostname: "mytest-web2"
networks:
- test
networks:
test:
external:
name: user_defined_overlay
mi versión de docker es:Docker version 17.06.2-ce, build cec0b72
y recibí el siguiente error cuando intenté implementar la pila:
network "user_defined_bridge" is declared as external, but it is not in the right scope: "local" instead of "swarm"
Pude crear una red superpuesta y definirla en el archivo de composición. eso funcionó bien pero no para el puente. resultado de docker network ls:
NETWORK ID NAME DRIVER SCOPE
cd6c1e05fca1 bridge bridge local
f0df22fb157a docker_gwbridge bridge local
786416ba8d7f host host local
cuhjxyi98x15 ingress overlay swarm
531b858419ba none null local
15f7e38081eb user_defined_overlay overlay swarm
ACTUALIZAR
Intenté crear dos contenedores que se ejecutan en dos nodos de enjambre diferentes (el primer contenedor se ejecuta en el administrador mientras que el segundo se ejecuta en el nodo de trabajo) y especifiqué la red de superposición definida por el usuario como se muestra en la pila anterior. Intenté hacer ping al contenedor mytest-web2 desde el contenedor mytest-web1 usando el nombre de host, pero obtuveunknown host mytest-web2