我正在尝试使用2个docker容器中的RabbitMQ进行RPC。我把它们设置如下:
chindow:
image: bablot/chindow
ports:
- "9999:9999"
links:
- rabbitmq:amq
rabbitmq:
image: rabbitmq:3
ports:
- "15672:15672"
最初所有内容都按预期工作,但是当我使用ctrl+c
关闭系统时,会导致以下错误:
babelotserver_rabbitmq_1 exited with code 143
然后当我继续重启系统时:
chindow_1 | { [Error: connect ECONNREFUSED 172.17.0.3:5672]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect',
address: '172.17.0.3',
port: 5672 }
编辑:
当我docker stop
rabbitmq时,我得到code 143
当我docker stop
node.js时,我得到code 0
为什么这两种不同?这有意义吗?
答案 0 :(得分:1)
确保您使用docker-compose format Version 2。
它将创建一个桥接网络:请参阅“Networking in Compose”
这将允许您的容器停止并重新启动,同时仍然能够看到/彼此联系。
默认情况下,Compose会为您的应用设置单个网络 服务的每个容器都加入默认网络,并且该网络上的其他容器可以,并且可发现,它们的主机名与容器名称相同。