0

我正在尝试在 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 stoprabbitmq 我得到code 143 当我docker stopnode.js 我得到code 0

为什么这2个不同?这有意义吗?

4

1 回答 1

1

确保您使用的是docker-compose 格式 Version 2

它将创建一个桥接网络:请参阅“ Compose 中的网络

这将允许您的容器停止并重新启动,同时仍然能够看到/联系彼此。

默认情况下,Compose 会为您的应用程序设置一个网络。
服务的每个容器都加入默认网络,并且可以被该网络上的其他容器访问,并且可以通过与容器名称相同的主机名被它们发现

于 2016-04-30T21:43:02.837 回答