LHtry
实验室

Docker 之 cannot allocate memory

liuhua-2024/2/21 17:42:37

docker在启动容器时出现cannot allocate memory的错误,是由于docker默认使用了cgroup的kmem accounting特性,这个特性在linux内核3下,存在bug,无法有效的进行回收;如果容器出现频繁的关闭/启动,就会使cgroup的可分配内存越来越少,直到最终耗尽。

解决的办法:

1、临时解决的办法是重启服务器。

2、永久解决的办法是:

(1)升级linux内核,

(2)禁用cgroup的kmem特性,

(3)重新编译k8s或docker的runc,不使用kmemtex。

详见博文:https://www.modb.pro/db/212312


小钉 京ICP备16032583号-1