それでは、私はドッカースウォームにデプロイされるアプリケーションを持って、それのようなものに見えるコンファイルがあるとしましょう:たぶんドッキングウィンドウ・コンアプリケーションやその他の容器の間にドッキングウィンドウの群れのネットワークを作成
version: '2'
services:
postgres:
image: postgres
environment:
- POSTGRES_PASSWORD=password
networks:
- app-network
volumes:
- postgres:/var/lib/postgresql/data
myapp:
container_name: 'myapp'
image: myapp:debug
depends_on:
- postgres
build:
context: .
dockerfile: Dockerfile.debug
networks:
- app-network
networks:
app-network:
driver: bridge
volumes:
postgres:
を私はこれらのアプリケーションのいくつかを展開したいと思っており、それらはrabbitmqコンテナを介して通信します。私はちょうどそのような群れのネットワークを作成すると考えていた:
$ docker network create -d overlay common-network
そして私が規定そうのようなRabbitMQのインスタンスができます
$ docker run -d \
--hostname rabbit \
--name rabbit \
-e RABBITMQ_ERLANG_COOKIE='bleh' \
-e RABBITMQ_DEFAULT_USER='rabbitmq' \
-e RABBITMQ_DEFAULT_PASS='rabbitmq' \
-e RABBITMQ_DEFAULT_VHOST='/' \
rabbitmq:3
はその後、私のアプリケーションをデプロイします
$ docker-compose up
しかし、アプリケーションが「ウサギ」に届くようには見えません。
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
176e455e8215 common overlay global
8f1b14690f2b swarm-agent-40001BF7000000/bridge bridge local
3cfaae53a0dc swarm-agent-40001BF7000000/host host local
a01b27b94fcc swarm-agent-40001BF7000000/none null local
aa6f5b56a6d3 swarm-agent-40001BF7000000/publish_app-network bridge local
アプリケーションは、(上記のように)同じコンポーズファイルで定義されているサービスを確認することができ、それらはその外のサービスを見ることができません。
すべてのアプリケーションを同じネットワーク上で取得するにはどうすればよいですか?
EDIT 1 は、私もこれにコンファイルを変更しようとしている:
だから、networks:
- app-network
- common
networks:
adapter-network:
driver: bridge
common:
external: true