从 docker-compose 连接到不同堆栈上的服务
Connect to a service on a different stack from docker-compose
我正在尝试将堆栈 abc - abc_one 中的服务一连接到堆栈 zyx - zyx_two 中的服务二。这些服务共享网络 az-network 。
我读过 here 可以手动操作,但我需要使用 docker-compose.yml 文件来部署到我的群中。
abc_one 的简单版本是
version: "3.5"
services:
one:
image: "10.30.13.81:5000/dotnetmicroservice"
environment:
ElasticSearchLogging:Uri: "http://zyx_two:9200/"
networks:
- az-network
networks:
az-network:
external: true
和zyx_two
version: "3.5"
services:
two:
image: "10.30.13.81:5000/dotnetmicroservice"
networks:
- az-network
networks:
az-network:
external: true
来自 docker compose reference 关于 external
你设置为 true:
If set to true specifies that this network has been created outside of Compose. docker-compose up does not attempt to create it and raises an error if it doesn’t exist.
由于您的两个 docker-compose
都将 external
设置为 true,因此会引发错误并且不会创建网络。
从 docker-composes 之一中删除 external
选项,首先使用始终为 运行 的那个,这样它就创建了网络,然后是另一个堆栈连接到它。
无需添加 zyx_ 前缀即可正常工作。
az-network 必须是叠加 docker 网络
docker network create -d overlay --attachable az-network
服务名称在同一网络中的所有堆栈上必须是唯一的。
abc 堆栈 (docker stack deploy -c abc-compose.yml abc
)
version: "3.5"
services:
one:
image: "10.30.13.81:5000/dotnetmicroservice"
environment:
ElasticSearchLogging:Uri: "http://two:9200/"
networks:
- az-network
networks:
az-network:
external: true
zyx 堆栈 (docker stack deploy -c zyx-compose.yml zyx
)
version: "3.5"
services:
two:
image: "10.30.13.81:5000/dotnetmicroservice"
networks:
- az-network
networks:
az-network:
external: true
我正在尝试将堆栈 abc - abc_one 中的服务一连接到堆栈 zyx - zyx_two 中的服务二。这些服务共享网络 az-network 。
我读过 here 可以手动操作,但我需要使用 docker-compose.yml 文件来部署到我的群中。
abc_one 的简单版本是
version: "3.5"
services:
one:
image: "10.30.13.81:5000/dotnetmicroservice"
environment:
ElasticSearchLogging:Uri: "http://zyx_two:9200/"
networks:
- az-network
networks:
az-network:
external: true
和zyx_two
version: "3.5"
services:
two:
image: "10.30.13.81:5000/dotnetmicroservice"
networks:
- az-network
networks:
az-network:
external: true
来自 docker compose reference 关于 external
你设置为 true:
If set to true specifies that this network has been created outside of Compose. docker-compose up does not attempt to create it and raises an error if it doesn’t exist.
由于您的两个 docker-compose
都将 external
设置为 true,因此会引发错误并且不会创建网络。
从 docker-composes 之一中删除 external
选项,首先使用始终为 运行 的那个,这样它就创建了网络,然后是另一个堆栈连接到它。
无需添加 zyx_ 前缀即可正常工作。
az-network 必须是叠加 docker 网络
docker network create -d overlay --attachable az-network
服务名称在同一网络中的所有堆栈上必须是唯一的。
abc 堆栈 (docker stack deploy -c abc-compose.yml abc
)
version: "3.5"
services:
one:
image: "10.30.13.81:5000/dotnetmicroservice"
environment:
ElasticSearchLogging:Uri: "http://two:9200/"
networks:
- az-network
networks:
az-network:
external: true
zyx 堆栈 (docker stack deploy -c zyx-compose.yml zyx
)
version: "3.5"
services:
two:
image: "10.30.13.81:5000/dotnetmicroservice"
networks:
- az-network
networks:
az-network:
external: true