我正在使用多机Vagrant设置,其中一个VM是一个docker主机,它运行一些使用自定义Dockerfiles构建的容器。
每个容器都不同,并将一些端口暴露给主机。我可以直接在Dockerfile中强制端口映射,而不必使用docker run -p
命令设置映射吗?
例如,在Dockerfile中我有:
EXPOSE 8080
如果我使用docker run -P
运行容器,docker会在主机的随机端口上发布8080端口(在我的特定情况下没用)。我是否可以强制docker在主机上的指定Y端口上发布X端口,而不必运行自定义docker run -p Y:X
命令?
答案 0 :(得分:1)
它的设计并非无用。您可以同时多次运行容器。如果映射是dockerfile的一部分,你将a)无法控制如何跨队列管理这个端口(负载均衡器)b)多个实例上的冲突试图绑定到同一主机端口和c)一堆其他问题。
答案是否定的。
答案 1 :(得分:1)
docker run --net=host ...
可能解决您的问题,但通常无法解决。