有没有办法使用docker file
将主机上的特定端口绑定到容器端口我在docker文件中有以下项目 第1步:EXPOSE 8090:8080
但是当我运行docker run时,容器会绑定到端口8080而不是8090,如docker文件中所述。
任何想法如何使用docker文件实现这一点,或者有更好的方法来实现这一点。
答案 0 :(得分:1)
无法看到docker实现了您所描述的EXPOSE
功能。
<强> 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
结构的一部分。这些仅在容器运行时可用。