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
将发布的端口随机化, 除非您要为每个主机固定一个容器。
答案 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