【问题标题】:How can I connect celery container to rabbitmq container when using --net=host?使用 --net=host 时,如何将 celery 容器连接到 rabbitmq 容器?
【发布时间】: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


【解决方案1】:

我找到了原因。 我忘记在 celery 容器的 /etc/resolv.conf 中添加 localhost 作为名称服务器。

感谢您的宝贵时间。 马蒂亚斯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 2018-08-30
    • 2022-01-27
    相关资源
    最近更新 更多