最近,我尝试将2
docker-compose
yaml
版本的文件升级到3
版本,具体来说,我是从2.1升级到3.4,使用docker-compose
版本1.18.0和docker
版本18.06.01。
由于存在版本2选项,第一次尝试导致docker-compose
中止:mem_limit
。阅读这些Version 3 docs,它清楚地表明mem_limit
已被删除,并查看“升级”以指导使用远离此选项。这些说明告诉您使用deploy
部分与resources
。对docker-compose.yml
文件进行这些更改,系统正常启动。
不幸的是,我错过了免责声明,其中声明deploy
被docker-compose
忽略!我的问题:是否有一种方法可以在使用合成文件引用3和docker-compose
的同时仍然强制执行容器内存限制?
2条答案
按热度按时间xqk2d5yq1#
不,没有。
在版本2.x和3.x之间...删除了多个选项
......一个月一次,一个月一次:这些已被deploy下的resources键所取代。deploy配置仅在使用Docker堆栈deploy时生效,并且被docker-compose忽略。
请参阅合成:从2升级到3
而且你也不需要升级,如果你不使用swarm,你甚至没有任何理由升级。
很遗憾在官方的码头文件中,有这样的记载
第3版(最新和推荐版本)
事实并非如此,如果你使用docker-compose而不使用swarm,那么几乎没有任何理由去切换或在新项目v3上使用。在官方资源库中,你可以看到这样的评论[2][3]。同样在兼容性矩阵中,你可以看到v2仍然在升级,即使v3已经过时了很长一段时间。只有v1被标记为deprecated。
juzqafwq2#
以下是具有内存限制的Docker合成文件版本3.8的示例: