docker run --publish-all与docker-compose等价的是什么?

时间:2018-10-26 17:00:17

标签: docker elasticsearch docker-compose

Docker为docker run提供了选项--publish-all

--publish-all , -P :        Publish all exposed ports to random ports

使用docker-compose时等效吗?我浏览了docker compli cli和yml文件文档,找不到类似的东西。

对于上下文,我希望根据Elasticsearch的文档(建议将其部署到生产环境)进行此操作。 See #4 here

  

该图像公开了TCP端口9200和9300。对于群集,它是   建议使用--publish-all将发布的端口随机化,   除非您要为每个主机固定一个容器。

1 个答案:

答案 0 :(得分:2)

没有类似的选项。

但这可以通过template <typename T1, typename T2> typename std::common_type<T1, T2>::type maxOfTwo (T1 a, T2 b) { return a>b?a:b; } 配置来完成。

您可以采用以下格式指定ports

maxOfTwo<int>(3, 6.3);

然后,它将在docker-compose.yaml上将此端口发布到随机主机端口(来自本地测试运行):

ports:
 - "9200"
 - "9300"

您可以这样查询它:

docker-compose up -d