是否可以将Docker端口映射设置为Dockerfile中的主机?

时间:2016-03-22 11:20:18

标签: networking docker vagrant dockerfile

我正在使用多机Vagrant设置,其中一个VM是一个docker主机,它运行一些使用自定义Dockerfiles构建的容器。

每个容器都不同,并将一些端口暴露给主机。我可以直接在Dockerfile中强制端口映射,而不必使用docker run -p命令设置映射吗?

例如,在Dockerfile中我有:

EXPOSE 8080

如果我使用docker run -P运行容器,docker会在主机的随机端口上发布8080端口(在我的特定情况下没用)。我是否可以强制docker在主机上的指定Y端口上发布X端口,而不必运行自定义docker run -p Y:X命令?

2 个答案:

答案 0 :(得分:1)

它的设计并非无用。您可以同时多次运行容器。如果映射是dockerfile的一部分,你将a)无法控制如何跨队列管理这个端口(负载均衡器)b)多个实例上的冲突试图绑定到同一主机端口和c)一堆其他问题。

答案是否定的。

答案 1 :(得分:1)

docker run --net=host ... 可能解决您的问题,但通常无法解决。