0

有没有办法使用docker文件将主机上的特定端口绑定到容器端口

我在 docker 文件第 1 步中有以下项目:EXPOSE 8090:8080

但是当我运行 docker run 时,容器绑定到端口 8080 而不是 docker 文件中描述的 8090。

知道如何使用 docker 文件来实现这一点,或者有没有更好的方法来实现这一点。

4

2 回答 2

1

看不到 docker 实现了EXPOSE您所描述的功能。

文档中:

暴露

EXPOSE <port> [<port>...]

EXPOSE指令通知 Docker 容器将在运行时侦听指定的网络端口。Docker 使用此信息通过链接互连容器(请参阅Docker 用户指南)。

EXPOSE不是vagrantforwarded_port功能的等价物。

当您需要链接容器时,它很有用。

如果您需要将端口从容器转发到主机,请使用该-p标志。
例子:

docker run -it -p 80:80 5959f94a4d10 /bin/bash
于 2014-10-17T01:49:01.473 回答
0

有没有办法使用docker文件将主机上的特定端口绑定到容器端口

不可以。Dockerfile设计仅包括便携式配置。绑定到主机端口是不可移植的,因为主机端口可能并非在每个系统上都可用。这些配置标志可能在运行时可用,但不包含在 Dockerfile 语法(以及生成的 Docker 映像)中。

在底层,主机端口和其他不可移植的配置(例如卷挂载)是HostConfig容器结构的一部分。这些仅在容器运行时可用。

于 2014-10-19T18:40:48.190 回答