docker documentationから、ユーザー定義のブリッジネットワークを使用せずにホスト名を使用してコンテナを見つけるためにドッカーDNSを使用できないことが分かりました。私は、コマンドを使用して1を作成しました:は、ユーザー定義のブリッジをswarm compose yamlファイルで使用することはできません
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
UPDATE
Iは、(第2のワーカーノードで実行しながら、第1容器は、マネージャ上で実行)、私はユーザに指定された2つの異なる群れノード上で実行される2つのコンテナを作成しようとしました上記のスタックのように定義されたオーバーレイネットワーク。私はホスト名を使ってmytest-web1コンテナからmytest-web2コンテナにpingを試みましたが、得ました。unknown host mytest-web2
ドッカースタックを使用する場合、ネットワークはオーバーレイでなければなりません。だからその問題は何ですか –
スタックネットワークを指定することはできませんか?オーバーレイのみ? – tkyass