【发布时间】: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