docker中的RabbitMQ不会优雅地结束,也无法重新连接

时间:2016-04-30 18:19:40

标签: docker rabbitmq amqp docker-compose docker-container

我正在尝试使用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

为什么这两种不同?这有意义吗?

1 个答案:

答案 0 :(得分:1)

确保您使用docker-compose format Version 2

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

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

  

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