【问题标题】:Docker: give a random port mapping only to certain portsDocker:仅将随机端口映射到某些端口
【发布时间】:2016-07-14 22:14:03
【问题描述】:

我正在使用 Docker 1.9.1 的远程 API 来创建容器。

我想要完成的一件事是,在图像的所有公开端口中,我只想公开其中的几个(或者换句话说,给它们主机端口映射),同时我不想'不想管理要使用的主机端口,但希望 Docker 选择随机可用的端口。

例如,一个镜像暴露了 80、443、22 端口,我想要的是类似 Docker 运行风格的东西(我知道这不可能通过 cmd 行)

docker run -p {a random available port}:80 image

我可以通过远程 API 实现类似的功能吗?现在只能设置PublishAllPorts = true,但是这样会发布所有端口,浪费太多主机端口。

【问题讨论】:

  • 我很确定你可以做到docker run -p 80 image
  • docker rest api 用于启动容器允许您定义端口绑定。对于到主机端口的随机映射,请使用 "PortBindings": { "80/tcp": [{ "HostPort": "" }] }
  • @Shibashis,这行得通! ExposedPorts 的另一个属性在这里令人困惑。谢谢,您想将此移至答案以便我接受吗?
  • 正如@oliver 提到的,也可以使用 cmd 行
  • 是的,我之前没有尝试过 cmd,但很高兴能学到这一点。也感谢@OliverCharlesworth!

标签: docker


【解决方案1】:

用于启动容器的 Docker rest api 允许您定义端口绑定。对于到主机端口的随机映射,请使用 "PortBindings": { "80/tcp": [{ "HostPort": "" }] }

【讨论】:

    猜你喜欢
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 2019-04-10
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    相关资源
    最近更新 更多