当前位置: 首页 > 面试题库 >

绑定容器端口以托管在Dockerfile中

杜经艺
2023-03-14
问题内容

通常在绑定端口时,我会这样做docker run -p hostport:dockerport ...,但是我可以在我的内部指定端口绑定Dockerfile吗?

我正在启动一个监听端口的服务器。服务器通过cmd行参数获取端口。如果我不必在两个位置(在docker runcommand和中Dockerfile)重复端口,那将是很棒的


问题答案:

dockerfile您只能使用expose。该EXPOSE指令通知Docker容器在运行时监听指定的网络端口。EXPOSE不会使主机可以访问容器的端口。

要将Hostport分配给容器,您需要执行publish-p)。或-P发布 所有 公开端口的标志。

要使过程自动化,可以使用docker-compose。在docker compose文件中,您可以编排docker run具有不同参数的多个命令。



 类似资料:
  • 为主机绑定容器端口 默认情况下,Docker容器可以连接到外部区域,但外部区域不能连接到容器。在Docker启动时,由于它在主机上创建了一个iptables伪装规则,使得每一个输出连接看起来都是由主机IP地址建立起来的。 # You can see that the Docker server creates a # masquerade rule that let containers conn

  • 在Linux上运行Windows容器可能吗?该场景基于一个在.net(旧的net)中编写的应用程序和Linux用户,该用户希望使用Docker运行该应用程序,以便在上提供一个编写的API。 我正在使用Docker Desktop for Windows的测试版 如果不是,那么为什么Windows可以运行Linux容器,反之亦然? 编辑: 由于一段时间过去了,这个问题是一个流行的问题。我想在这里补充

  • 问题内容: 是否可以在 Linux* 上运行 Windows容器 ?该方案基于一个用 .NET (旧网络)编写的应用程序,并且 Linux用户 希望通过Docker运行此应用程序以在上提供书面API 。 * 我正在使用Windows的Docker桌面的 beta版本 如果不是,那为什么Windows可以运行Linux容器而不是相反? 编辑: 随着时间的流逝,这个问题很受欢迎。我想在此处添加一条注释

  • 了解如何配置WAS或OpenJPA,以便通过容器管理的实体管理器使用容器管理的身份验证。 试图通过在JNDI中注册为“JDBC/DB2”(指Oracle)的JDBC数据源访问Oracle数据库,该数据源在persistence.xml中定义。 persistence.xml 但是,当访问持久性单元的容器管理实体管理器时,会抛出ORA-01017无效的usrname/password。如果在pers

  • 让我们考虑这样一个场景:客户端A位于NAT A之后,客户端B位于NAT B之后。TCP穿孔会发生,这会在两侧打开一个端口进行通信。在开放的端口上,客户端可以作为主机的HTTP/HTTPS服务器吗?

  • 在入口点使用时,如何指定它绑定到的端口? 默认情况下,它使用 5000。 请注意,此问题特定于新的 ASP.NET 核心 API(当前在 1.0.0-RC2 中)。