Docker如何暴露所有端口或从7000到8000的一段端口范围?

146

我可以在Dockerfile中指定一个端口范围吗?

EXPOSE 7000-8000

当运行容器时,将所有这些暴露的端口绑定到主机上相同的端口上?

docker run -p 7000-8000:7000-8000

2
可能是Docker:公开一系列端口的重复问题。 - Michael Irigoyen
1个回答

192
自Docker 1.5版本以来,您现在可以使用以下命令将一系列端口暴露给其他链接的容器:
Dockerfile EXPOSE 命令: EXPOSE 7000-8000 或者使用 Docker run 命令: docker run --expose=7000-8000 或者您可以通过Docker run 命令发布一系列端口到主机上: docker run -p 7000-8000:7000-8000

24
请查看主机上的 "iptables -L -n" 输出,您将会看到数百行单个端口映射。如果您使用 5000-50000 等范围,则实际上需要等待很长时间。这是预期的行为吗? - ᐅdevrimbaris
11
@ᐅdevrimbaris 还有一个docker进程正在每个端口上启动。我认为这是占用大部分工作时间的原因。 - Matt
2
文档中提到了 --publish-all, -P 标志,它可以“将所有暴露的端口发布到随机端口”。http://docs.docker.com/engine/reference/commandline/run/ - nils petersohn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接