【发布时间】:2016-03-22 11:20:17
【问题描述】:
我正在使用多机 Vagrant 设置,其中一个 VM 是一个 docker 主机,它运行一些使用自定义 Dockerfile 构建的容器。
每个容器都是不同的,并且会向主机公开一些端口。是否可以直接在 Dockerfile 中强制进行端口映射,而不必使用 docker run -p 命令设置映射?
例如,在 Dockerfile 中我有:
EXPOSE 8080
如果我使用docker run -P 运行容器,docker 会在主机中的随机端口上发布 8080 端口(这在我的特定情况下是无用的)。我可以强制 docker 在主机上的指定 Y 端口上发布 X 端口,而不必运行自定义的docker run -p Y:X 命令吗?
【问题讨论】:
-
您的部署脚本可以检查镜像的端口并将必要的 -p 选项传递给运行命令。
-
@IgorBukanov:但我在 Vagrant 中使用 Docker 配置器,它有一个直接的“docker run”方法。添加执行所需操作的部署脚本会使 Vagrant 的便利性无效。
标签: networking docker vagrant dockerfile