【发布时间】:2020-02-20 17:14:16
【问题描述】:
我用python3.7.5写了一个连接RabbitMQ的应用:
使用 Ubuntu 作为 docker-machine
我正在使用 docker 运行 rabbitmq:docker run --name rabbitmq -p 5671:5671 -p 5672:5672 -p 15672:15672 --hostname rabbitmq rabbitmq:3.6.6-management
测试:
-
我的 python 应用通过 127.0.01:5672 连接到它
-
预期:连接并正常工作
-
实际:连接和工作
我将应用程序放入 docker 并构建并运行
--build-arg ENVIRONMENT_NAME=develop
-t pdf-svc-image:latest .
&& docker run
-P
--env ENVIRONMENT_NAME=local
--name html-to-pdf
-v /home/mickey/dev/core/components/pdf-svc/:/html-to-pdf
--privileged
--network host
pdf-svc-image:latest bash
(这个命令行是用pycharm创建的)
运行此代码时(在 docker 内),我得到一个异常
return await aio_pika.connect_robust(
"amqp://guest:guest@{host}".format(host=consts.MESSAGE_QUEUE_HOST)
)
- [Errno 111] 连接调用失败('127.0.0.1',5672)
- [Errno 99] 无法分配请求的地址
帮助?
【问题讨论】:
-
我建议通读 Docker 文档中的Networking in Compose,即使您没有使用 Compose;它有一些关于事情通常如何运作的很好的背景信息。在 Compose 之外,您需要
docker network create一个网络并在该--network上运行两个容器。尽可能避免主机网络。
标签: python-3.x docker rabbitmq network-programming pika