每次run一个新容器时是否有必要设置ulimit参数


在安装Linux后都会优化Linux内核,设置ulimit等,我测试了,Docker容器的内核参数继承了宿主机,而ulimit却没有继承,是否有必要在启动每个容器时设置ulimit,谢谢你们回答。
已邀请:

wangzi19870227 - sina攻城狮,docker爱好者

赞同来自: DockOne firelife nicole


docker 1.6+ ulimit用法:
--default-ulimit,docker daemon的启动参数,能够指定默认container ulimit配置。如果此参数没配置,则默认从docker daemon继承;
--ulimit,docker run的参数,能够覆盖docker daemon指定的ulimit默认值。如果此参数没配置,则默认从default-ulimit继承;

default-ulimits
setting-ulimits-in-a-container

所以,如果你的大多数container都需要一些相同的ulimit配置,就在daemon上配一次default-ulimit就可以了;如果你有某个container需要不同的ulimit陪孩子,就在docker run时候指定就行了。

萧遥吟 - 80后IT技术男

赞同来自: 扁豆焖面先生


以CentOS 6系列为例,1.6版本之前的,容器里的ulimit是根据Docker配置文件的,如果不设置默认是1024:4096,所以你一般进入容器后看到是1024,可以通过修改/etc/profile文件,增加ulimit -SHn 4096来调整最大。1.6之后是可以在run的时候,通过ulimit设置。建议是使用1.6版本run的时候进行ulimit设置,可以设置为1024:65535,这样容器里如果默认1024不足,可以修改配置文件调整更多,不需要因为ulimit不足,而新建立容器。

要回复问题请先登录注册