如何从另一个容器(Docker Compose)获取RabbitMQ的IP地址?

时间:2017-09-29 17:26:25

标签: python django docker rabbitmq celery

我正在关注this教程。在那里,我需要将RabbitMQ IP地址设置为我的Celery设置。

我的docker-compose.yml中有三个容器:NGINX,Django + Celery和RabbitMQ。这些都是docker-compose up运行的。但是,我需要在不同的容器中使用celery.py的RabbitMQ IP地址。

通过Google查看,docker-machine ip <container>应该是解决方案。但是,docker-machine仅适用于运行容器AFAIK。 那么,如何将容器IP地址传递到同一个docker-compose.yml文件中的另一个容器?<​​/ strong>在这种情况下,我想拥有我的RabbitMQ IP地址。

1 个答案:

答案 0 :(得分:0)

您无需传递IP。在link中为这些服务添加docker-compose.yml个配置,然后按服务名称引用容器。

services:
  rabbitmq:
    # other config here
  celery:
    # other config ...
    link:
      - rabbitmq

然后您可以配置Celery以连接名称rabbitmq。因此,BROKER_URL设置为amqp://user:pass@rabbitmq:5672/queue_name