默认情况下,CoreOS和Linux内核有一些相当保守的限制,例如打开文件和锁定内存。
所以我在/etc/systemd/system.conf中增加了值:
DefaultLimitNOFILE=500000
DefaultLimitMEMLOCK=unlimited
然而,当我启动我的docker容器时,限制仍然很低。 ulimit -l打印64。
运行ulimit -l unlimited会输出错误。
ulimit:最大锁定内存:无法修改限制:操作不行 允许
所以我放了
LimitMAXLOCKED=unlimited
LimitNOFILE=64000
在我的systemd单元文件中。
但是,这些值不是通过docker容器进行的,并且调用它们仍然无法正常工作。我在更改系统范围默认值后重新启动了计算机。
这可能更像是一个系统化的东西。我该如何解决这个问题?
答案 0 :(得分:0)
Docker容器不是由systemd启动或管理的。 Docker守护程序负责在此处设置限制。以下是official documentation:
的示例# docker run --ulimit nofile=1024:1024 --rm debian sh -c "ulimit -n"