【发布时间】:2017-02-27 21:06:48
【问题描述】:
使用 --net=host 时,我无法将 celery 容器连接到 rabbitmq 容器。
我的 rabbitmq 是这样开始的:
docker run -d --rm --net=host --hostname=rabbitmq --name=rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=donald -e RABBITMQ_DEFAULT_PASS=duck rabbitmq-mgnt
我的 rabbitmq 服务器是在 DNS 中定义的:
nslookup amqp
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: amqp.service.consul
Address: 10.68.32.180
我可以连接并验证凭据:
curl -i -u donald:duck http://amqp:15672/api/whoami
HTTP/1.1 200 OK
vary: Accept-Encoding, origin
Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact)
Date: Mon, 27 Feb 2017 20:51:12 GMT
Content-Type: application/json
Content-Length: 41
Cache-Control: no-cache
但我无法连接芹菜:
docker run -d --rm --net=host --hostname=celery --name=celery celery
a52019dbe491926dc28937859c33503db211c79536256a5e8d652e72e6198639
搬运工记录芹菜
[2017-02-27 20:53:59,979: ERROR/MainProcess] consumer: Cannot connect to amqp://donald:**@amqp:5672//: [Errno -2] Name or service not known.
Trying again in 2.00 seconds...
我错过了什么吗?
亲切的问候 马蒂亚斯
【问题讨论】:
-
为什么不
docker network create celery-rabbitmq然后在这个网络中启动你的 2 个容器?你的 rabbitmq 应该是一个容器 -
我希望它简单,因为我有许多需要相互交谈的容器和虚拟机,因此使用 --net=host。
标签: docker rabbitmq celery amqp