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

Ответы на вопрос(2)

Ваш ответ на вопрос