docker中的RabbitMQ不会正常结束,无法重新连接

我正在尝试在2个docker容器中使用RabbitMQ进行RPC。 我已经把它们设置如下:

chindow: image: bablot/chindow ports: - "9999:9999" links: - rabbitmq:amq rabbitmq: image: rabbitmq:3 ports: - "15672:15672" 

一切工作如预期最初,但后来,当我closures系统与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

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

确保您使用的是docker-compose格式版本2 。

它将创build一个桥接networking:请参阅“ 撰写networking ”

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

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