Так, скажем, у меня есть приложение, которое получает развернутое в Докер Swarm и имеют создание сообщения файл, который выглядит примерно так:Создание сети на Docker роя между докерами-Compose приложениями и другими контейнерами
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:
Maybe Я хочу, чтобы несколько из этих приложений были развернуты, и они обмениваются данными через контейнер 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