【问题标题】:Docker expose all ports or range of ports from 7000 to 8000Docker 公开从 7000 到 8000 的所有端口或端口范围
【发布时间】:2015-02-25 11:09:58
【问题描述】:

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

EXPOSE 7000-8000

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

docker run -p 7000-8000:7000-8000

【问题讨论】:

标签: docker dockerfile


【解决方案1】:

从 Docker 1.5 开始,您现在可以公开一系列端口到其他链接的容器,使用:

Dockerfile EXPOSE 命令:

EXPOSE 7000-8000

或 Docker run 命令:

docker run --expose=7000-8000

或者您可以通过 Docker run 命令发布一系列端口到主机:

docker run -p 7000-8000:7000-8000

【讨论】:

  • 检查主机上“iptables -L -n”的输出,你会看到数百行单端口映射。如果您给 5000-50000 ,那么实际上您必须等待很长时间。这是假定的行为吗?
  • @ᐅdevrimbaris 还有一个docker process being launched per port。我相信这是占用大部分工作时间的原因。
  • 文档讨论了--publish-all , -P 标志,它“将所有公开的端口发布到随机端口”。 docs.docker.com/engine/reference/commandline/run
【解决方案2】:

对于遇到此问题并最终发表此帖子的任何人...问题仍然存在 - https://github.com/moby/moby/issues/11185

【讨论】:

  • 非常感谢。当试图暴露一千个端口时,一切都卡住了,我快疯了。
  • 你找到解决方案来暴露一千个罐子的范围了吗? @sarusso
猜你喜欢
  • 1970-01-01
  • 2015-04-16
  • 2019-03-05
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
  • 2018-08-09
  • 1970-01-01
  • 2018-10-07
相关资源
最近更新 更多