安装Docker启动时报错docker. service:Failed at step LIMITS spawning /usr/bin/dockerd:Operation not permitted

文章讲述了用户在重启Docker时遇到启动失败的问题,通过检查系统日志发现LIMITS错误。解决过程涉及调整`/usr/lib/systemd/system/docker.service`和`containerd.service`中的NOFILE、NPROC、CORE和TasksMax配置,以确保它们不超过系统设置,最终成功重启Docker。
摘要由CSDN通过智能技术生成

今天在重启docker程序的时候一直启动不起来,通过systemctl status docker和jourctl -xu docker也没有发现什么有用的报错信息,无奈只好查看/var/log/message,发现以下错误提示:

Started containerd container runtime
Starting Docker Application Container Engine...
Failed at step LIMITS spawning /usr/bin/containerd: Operation not permitted
containerd.service: main process exited, code=exited, status=205/LIMITS
Unit containerd.service entered failed state.
containerd.service failed.

其中最为关键的信息是
Failed at step LIMITS和status=205/LIMITS,两个Limits信息

解决过程
看到有limits报错提示,本身的想到是不是系统ulimits和sysctl.conf里面的最大打开文件数是不是不够,查看以下信息:

ulimit -n
65535
sysctl -a|grep fs.nr_open
fs.nr_open = 65535

发现这两处都已经配置了,再查看一下当年已经打开的文件数

lsof -Ki|wc -l
14138

发现打开的文件数也没有超过系统设置的上限
百度搜索网友的解答说是docker.service、containerd.service里面有一项配置不能超过系统的配置
1、修改 /usr/lib/systemd/system/docker.service

LimitNOFILE、 LimitNPROC、LimitCORE这三个选项的值都改成65535

LimitNOFILE=65535
LimitNPROC=65535
LimitCORE=65535

2、修改/usr/lib/systemd/system/containerd.service
将LimitNOFILE、 LimitNPROC、LimitCORE、TasksMax这三个选项的值都改成65535

LimitNOFILE=65535
LimitNPROC=65535
LimitCORE=65535
TasksMax=65535

然后重新加载systemd配置再重启docker就可以了

systemctl daemon-reload
systemctl restart docker

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值