我如何获得从另一个容器(Docker Compose)运行的RabbitMQ的IP地址?
我正在学习这个教程。 在那里,我需要将RabbitMQ IP地址设置为我的Celery设置。
我在docker-compose.yml中有三个容器:NGINX,Django + Celery和RabbitMQ。 这些都是用docker-compose up
。 但是,我需要在不同的容器中有celery.py的RabbitMQ IP地址。
通过Google, docker-machine ip <container>
应该是解决scheme。 但是, docker-machine
只能运行容器AFAIK。 那么,如何将容器IP地址传递到同一个docker-compose.yml文件中的另一个容器? 在这种情况下,我想要我的RabbitMQ IP地址。
你不需要通过IP。 在docker-compose.yml
为这些服务添加link
configuration,然后通过服务名称引用容器。
services: rabbitmq: # other config here celery: # other config ... link: - rabbitmq
然后你可以configuration芹菜连接名称rabbitmq。 所以你的BROKER_URL
设置是amqp://user:pass@rabbitmq:5672/queue_name
。