【问题标题】:No connection in docker with ports exposed and publisheddocker中没有连接,端口暴露和发布
【发布时间】:2019-04-25 21:00:12
【问题描述】:

我有一些在 docker 容器中运行的中间件。

当我在我的主机上运行此中间件时,一切正常

当我在 docker 容器上运行它时,所有必要的端口都暴露并发布了

Dockerfile:

EXPOSE 5672 15672 1337 1338 5556 3000

Docker-compose.yml

ports:
- "5672:5672"
- "15672:15672"
- "1337:1337"
- "1338:1338"
- "5556:5556"
- "3000:3000"

这很奇怪,因为我在那个图像中有 rabbitmq 和 mule。 Rabbit 运行良好,因为我可以访问管理控制台并在其中发布我的 mule 应用程序。

我有一个流程,在 rabbitmq 中发布一个石英组件,每 30 毫秒保持一次活动,并且运行良好。

但我有其他流在 UDP 入站端点中接收信息并将其发布到 rabbitmq 队列上。 入站端点没有收到任何东西,这个端点监听 0.0.0.0 和端口 1338,我正在绑定 1338:1338。

因此,如果我在主机上的 localhost:1338 上收到包,入站端点应该不会收到它吗?

另外,在其他流程中,我有一个 java 客户端套接字,它使我的连接被拒绝。

奇怪的是,当我在主机上运行它时,什么都没有发生,而在 docker 中,我公开并发布了端口。

谢谢大家

【问题讨论】:

  • 查看docker inspect <container id>
  • 有很多端口。容器中运行的单个进程是否在监听所有进程?
  • docker inspect 在 docker-compose 和 dockerfile 的定义中看起来不错。是的,我确信我正在监听我检查过的所有端口。谢谢。
  • 问题是在主机上运行的中间件没有给我任何错误。现在在 docker 容器中,我使用的所有端口都与主机链接,但连接被拒绝。我需要做更多配置吗?

标签: java docker sockets mule mule-component


【解决方案1】:

需要说明docker是udp协议。

来自:

-1338:1338

到:

- 1338:1338/udp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 2019-10-24
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多