k8s、docker添加daemon.json添加“exec-opts“: [“native.cgroupdriver=systemd“]后无法启动的问题

考虑k8s下docker下载镜像太慢,修改了daemon.json,按照手册抄,添加

复制代码
{
	"exec-opts": ["native.cgroupdriver=systemd"],
	"registry-mirrors": ["https://kn0t2bca.mirror.aliyuncs.com"]
}

结果发现k8s起不来了,

-- Unit docker.service has begun starting up.

Aug 10 22:02:01 k8s-master dockerd[1831]: unable to configure the Docker daemon with file /etc/docker/daemon.json : the following directives are specified both as a flag and in the configuration file: exec-opts : (from flag: [native.cgroupdriver=systemd] , from file: [native.cgroupdriver=systemd] )

Aug 10 22:02:01 k8s-master systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE

Aug 10 22:02:01 k8s-master systemd[1]: Failed to start Docker Application Container Engine.

-- Subject: Unit docker.service has failed

-- Defined-By: systemd

-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

--

-- Unit docker.service has failed.

--

-- The result is failed.

Aug 10 22:02:01 k8s-master systemd[1]: Unit docker.service entered failed state.

Aug 10 22:02:01 k8s-master systemd[1]: docker.service failed.

原因

启动失败原因:直接启动docker会报错,因为docker.service里有一条配置,和刚才添加的"exec-opts"冲突了

复制代码
# /lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --exec-opt native.cgroupdriver=systemd

解决方案,保留一处正确的即可:

1.1. # docker.service 找到并删除下面这句话,保存退出,即可解决
--exec-opt native.cgroupdriver=cgroupfs \

1.2. # 或者daemon.json

删exec-opt所在行

init 6 重启

重启OK

相关推荐
岚天start19 分钟前
Kubernetes(k8s)中命令行查看Pod所属控制器之方法总结
kubernetes·k8s·pod·daemonset·deployment·statefulset
小刘|22 分钟前
腾讯云服务上下载docker以及使用Rabbitmq的流程
docker·rabbitmq·腾讯云
云途行者35 分钟前
使用 docker 安装 openldap
运维·docker·容器
惜.己1 小时前
使用python读取json数据,简单的处理成元组数组
开发语言·python·测试工具·json
退役小学生呀1 小时前
十五、K8s可观测能力:日志收集
linux·云原生·容器·kubernetes·k8s
Andy杨2 小时前
20250718-5-Kubernetes 调度-Pod对象:重启策略+健康检查_笔记
笔记·容器·kubernetes
Andy杨3 小时前
20250718-1-Kubernetes 应用程序生命周期管理-应用部署、升级、弹性_笔记
linux·docker·容器
别致的影分身9 小时前
Docker 镜像原理
运维·docker·容器
阿葱(聪)9 小时前
java 在k8s中的部署流程
java·开发语言·docker·kubernetes
指月小筑9 小时前
K8s 自定义调度器 Part1:通过 Scheduler Extender 实现自定义调度逻辑
云原生·容器·kubernetes·go