https://docs.docker.com/engine/userguide/networking/get-started-overlay/
лся удокерская документация что я не могу использовать Docker DNS для поиска контейнеров, используя их имена хостов, не используя пользовательскую мостовую сеть. Я создал один с помощью команды:
docker network create --driver=overlay --subnet=172.22.0.0/16 --gateway=172.22.0.1 user_defined_overlay
и попытался развернуть контейнер, который использует его. составить файл выглядит так:
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
моя версия докера:Docker version 17.06.2-ce, build cec0b72
и я получил следующую ошибку при попытке развертывания стека:
network "user_defined_bridge" is declared as external, but it is not in the right scope: "local" instead of "swarm"
Мне удалось создать оверлейную сеть и определить ее в файле компоновки. это работало нормально, но не для бриджа. результат работы докерской сети 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
ОБНОВИТЬ
Я попытался создать два контейнера, работающих на двух разных узлах Swarm (первый контейнер работает на менеджере, а второй - на рабочем узле), и я указал пользовательскую оверлейную сеть, как показано в стеке выше. Я попытался пропинговать контейнер mytest-web2 из контейнера mytest-web1, используя имя хоста, но получилunknown host mytest-web2