更新:从撰写文件版本3.5开始:
我遇到了类似的问题,并通过在docker-compose.yml项目之一中添加了一个小的更改来解决了该问题。
例如,我们有两个api scoring
和ner
。Scoring
api需要向api发送请求以ner
处理输入请求。为了做到这一点,他们都假定共享同一网络。
注意:每个容器都有其自己的网络,该网络是在docker中运行应用程序时自动创建的。例如,将创建ner api网络,将ner_default
评分api网络命名为scoring default
。此解决方案适用于版本:“ 3”。
在上述情况下,我的计分api要与ner api通信,那么我将添加以下几行。这意味着每当我为ner api创建容器时,它就会自动添加到scoring_default网络。
networks:
default:
external:
name: scoring_default
ner / docker-compose.yml
version: '3'
services:
ner:
build: .
...
networks:
default:
external:
name: scoring_default
评分/docker-compose.yml
version: '3'
services:
api:
build: .
...
我们可以看到上述容器现在如何成为scoring_default
使用命令调用的同一网络的一部分 :
码头工人检查scoring_default
{
"Name": "scoring_default",
....
"Containers": {
"14a6...28bf": {
"Name": "ner_api",
"EndpointID": "83b7...d6291",
"MacAddress": "0....",
"IPv4Address": "0.0....",
"IPv6Address": ""
},
"7b32...90d1": {
"Name": "scoring_api",
"EndpointID": "311...280d",
"MacAddress": "0.....3",
"IPv4Address": "1...0",
"IPv6Address": ""
},
...
}