首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示Docker镜像的所有端口

问显示Docker镜像的所有端口
EN

Stack Overflow用户
提问于 2018-03-16 22:33:21
回答 3查看 36.3K关注 0票数 29

我正在对设置HA集群的解决方案进行故障排除。尽管我知道应用程序执行故障转移和回切所需的端口,但不知何故,停靠的解决方案无法工作。我怀疑有一些我还不知道的端口。

目前,我的EXPOSE语句是这样写的:

代码语言:javascript
复制
EXPOSE 8080 61616 5672 61613 5445 1883

我的docker容器也是这样开始的

代码语言:javascript
复制
docker run --network host -p 8080:8080 -p 61616:61616 -p 5672:5672 -p 61613:61613 -p 5445:5445 -p 1883:1883

但为了排除故障,我想公开所有端口。

我试过这样的方法:

代码语言:javascript
复制
EXPOSE 1-65535

但这会给出一个错误。

公开docker容器的所有端口的最佳方式是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-16 23:09:04

当使用--network host运行时,不需要映射端口。所有docker容器端口都将可用,因为网络主机模式使容器使用主机的网络堆栈。

此外,也不需要EXPOSE 8080 61616 5672 61613 5445 1883。这条指令什么也不做。它只是一种记录哪些端口需要映射的方法。

简而言之,运行docker run --network host ...将公开所有容器端口。

票数 51
EN

Stack Overflow用户

发布于 2020-06-27 01:07:20

主机网络驱动程序只在Linux主机上工作,在Docker Desktop for Mac、Docker Desktop for Windows或Docker EE for Windows Server上不受支持。

有关the Docker documentation portal的更多信息。

票数 9
EN

Stack Overflow用户

发布于 2020-07-11 14:19:46

使用host网络将暴露几乎所有的端口,就像您在主机中运行应用程序一样。如果在主机网络模式下运行时使用端口标志,则会忽略这些标志并显示警告

注意:如果容器在使用主机模式联网时没有自己的IP地址,端口映射不会生效,-p、--publish、-P和--publish-all选项将被忽略,并产生警告:

代码语言:javascript
复制
WARNING: Published ports are discarded when using host network mode

确保您的主机是Linux主机,因为主机网络仅受Linux主机支持。

主机网络驱动程序只在Linux主机上工作,在Docker Desktop for Mac、Docker Desktop for Windows或Docker EE for Windows Server上不受支持。

这在Docker文档本身中也有提到。View particular Documentation

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

https://stackoverflow.com/questions/49323225

复制
相关文章

相似问题

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