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

时间:2014-10-17 01:19:43

标签: docker boot2docker

有没有办法使用docker file

将主机上的特定端口绑定到容器端口

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

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

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

2 个答案:

答案 0 :(得分:1)

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

来自documentation

  

<强> EXPOSE

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

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

EXPOSE不等同于vagrant forwarded_port功能。

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

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

docker run -it -p 80:80 5959f94a4d10 /bin/bash

答案 1 :(得分:0)

  

有没有办法使用docker file

将主机上的特定端口绑定到容器端口

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

引擎盖下,主机端口和其他非便携式配置(例如卷安装)是容器HostConfig结构的一部分。这些仅在容器运行时可用。