Docker将所有端口或端口范围从7000暴露到8000

Dar*_*Var 80 docker dockerfile

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

EXPOSE 7000-8000
Run Code Online (Sandbox Code Playgroud)

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

docker run -p 7000-8000:7000-8000
Run Code Online (Sandbox Code Playgroud)

Dar*_*Var 113

从Docker 1.5开始,您现在可以使用以下方法一系列端口暴露给其他链接容器:

Dockerfile EXPOSE命令:

EXPOSE 7000-8000

或者Docker 运行命令:

docker run --expose=7000-8000

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

docker run -p 7000-8000:7000-8000

  • 检查主机上"iptables -L -n"的输出,你会看到每行有数百行用于单端口映射.如果你给5000-50000,那么实际上你必须等待很长时间.这是假设的行为吗? (13认同)
  • @ᐅdevrimbaris还有一个[每个端口启动的docker进程](http://stackoverflow.com/q/37770567/1318694).我相信这是占用大部分工作时间的. (6认同)
  • #docker run --hostname = quickstart.cloudera --name my-cdh --privileged = true -t -i -p 1-65535:1-65535 cloudera / quickstart / usr / bin / docker-quickstart ..... ................我正在尝试打开所有端口,但是命令卡在Ubuntu linux aws ec2实例上 (2认同)
  • 文档讨论了 `--publish-all , -P` 标志,该标志“将所有公开的端口发布到随机端口”。http://docs.docker.com/engine/reference/commandline/run/ (2认同)

小智 7

对于任何面临这个问题并在这篇文章中结束的人......问题仍然存在 - https://github.com/moby/moby/issues/11185

  • 非常感谢。当我试图公开一千个端口时,一切都卡住了,我快要疯了。 (2认同)