作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚开始学习RabbitMQ和Docker / Fig。我有一个非常简单的示例,其中包含3个无花果容器,每个容器分别用于Rabbit Server,生产者和使用者。在/etc/hosts
中,我已将boot2docker ip
设置为dockerhost
的别名:
/etc/hosts
192.168.59.103 dockerhost
fig up -d
编码时,一切正常运行。我可以打开浏览器并转到
dockerhost:PORTNUM
并访问RabbitMQ控制面板。
dockerhost
:
/producer.py
connection = pika.BlockingConnection(pika.ConnectionParameters(
host=config['RabbitMQ']['hostname'],
...
))
/config.ini
[RabbitMQ]
hostname = dockerhost
fig up -d
时,出现连接错误:
rabbitworker_1 | File "/usr/local/lib/python3.4/site-packages/pika/adapters/blocking_connection.py", line 301, in _adapter_connect
rabbitworker_1 | raise exceptions.AMQPConnectionError(error)
rabbitworker_1 | pika.exceptions.AMQPConnectionError: [Errno -2] Name or service not known`
boot2docker ip
而不是
dockerhost
别名,可以使RabbitMQ生产商正常工作:
/config.ini
[RabbitMQ]
hostname = 192.168.59.103
hostname = dockerhost
而不是输入实际IP地址来使RabbitMQ生产商正常工作?
fig.yml
,可与
dockerhost
一起使用:
rabbit:
image: mikaelhg/docker-rabbitmq
ports:
- "5672:5672"
- "15672:15672"
fig.yml
和
Dockerfile
,它们与
dockerhost
不兼容:
/fig.yml
rabbitworker:
build: .
volumes:
- .:/opt/worker
- ./log:/var/log
command: supervisord -n
/Dockerfile
FROM python3-rabbit-producer
COPY . /opt/worker
WORKDIR /opt/worker
RUN pip3.4 install -r requirements.txt
CMD ["supervisord", "-n"]
最佳答案
当您使用无花果时,建议您通过创建1个唯一的fig.yml
文件并链接容器以进行通信来使用无花果的真正功能。因此,您将编辑当前的RabbitMQ生产者fig.yml
,从而得到:
rabbit:
image: mikaelhg/docker-rabbitmq
ports:
- "5672:5672"
- "15672:15672”
rabbitworker:
build: .
volumes:
- .:/opt/worker
- ./log:/var/log
links:
- rabbit
command: supervisord -n
/config.ini
[RabbitMQ]
hostname = rabbit
dockerhost
,则可以通过以下方式在
fig.yml
中编辑Rabbitworker链接:
links:
- rabbit:dockerhost
dockerhost
将解析为RabbitMQ服务器容器IP(而不是主机IP)。
关于docker - Docker/Boot2Docker/Fig + RabbitMQ主机问题; pika.exceptions.AMQPConnectionError:[Errno -2]名称或服务未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29284464/
阅读此处找到的 Rabbit MQ Pika HelloWorld 教程: https://www.rabbitmq.com/tutorials/tutorial-one-python.html 问题
为什么我在使用 Asyncore 而不是使用 BlockingConnection 时会收到 AMQPConnectionError? 如果只是“Asyncore 不能在 Windows 中工作”,那
我刚刚开始学习RabbitMQ和Docker / Fig。我有一个非常简单的示例,其中包含3个无花果容器,每个容器分别用于Rabbit Server,生产者和使用者。在/etc/hosts中,我已将b
我是一名优秀的程序员,十分优秀!