首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用端口转发从一个码头连接到另一个码头,network=host失败

使用端口转发从一个码头连接到另一个码头,network=host失败
EN

Stack Overflow用户
提问于 2020-02-20 17:14:16
回答 2查看 284关注 0票数 0

我用python3.7.5编写了一个连接到RabbitMQ的应用程序:

使用Ubuntu作为对接机

我在跟码头人一起跑兔子车

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

连接到它

预期的

  • :connects and works

  • Actual:连接和工作

我把这个应用程序放到了docker里面,然后构建并运行。

代码语言:javascript
复制
--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

(此命令行是用py魅力创建的)

当运行此代码(在码头内)时,我会得到一个异常

代码语言:javascript
复制
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无法分配请求的地址

帮忙?

EN

回答 2

Stack Overflow用户

发布于 2020-02-20 17:29:37

https://docs.docker.com/network/host/称,

注意:如果容器在使用主机模式网络时没有自己的IP地址,端口映射就不会生效,并且忽略-p、--发布、-P和-发布-所有选项,从而生成一个警告:

我不确定这是你的案子。您将登录容器,并运行ping, nslookup来检查网络连接。

票数 0
EN

Stack Overflow用户

发布于 2020-02-20 22:50:18

RabbitMQ容器

代码语言:javascript
复制
  docker run --name rabbitmq \
      -p 5671:5671 -p 5672:5672 -p 15672:15672 \
      --hostname rabbitmq \
      --network host \      # <-- Add this line, now both container see each other
      rabbitmq:3.6.6-management

App容器

代码语言:javascript
复制
  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

然后,在代码中,您需要使用host = rabbitmq而不是127.0.0.1加载变量。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60325327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档