Error starting daemon: error initializing graphdriver: driver not supported

博客记录了重装docker-ce后启动报错的解决办法,通过执行命令‘rm -fr /var/lib/docker/*’和‘systemctl start docker’来解决问题,涉及容器技术相关内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

重装了docker-ce之后,启动docker发生以下报错

● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sun 2019-05-05 19:26:05 CST; 6s ago
     Docs: https://docs.docker.com
  Process: 23921 ExecStart=/usr/bin/dockerd (code=exited, status=1/FAILURE)
 Main PID: 23921 (code=exited, status=1/FAILURE)

May 05 19:26:04 k8s02 systemd[1]: Starting Docker Application Container Engine...
May 05 19:26:04 k8s02 dockerd[23921]: time="2019-05-05T19:26:04.781672123+08:00" level=info msg="libcontainerd: new containerd process, pid: 23929"
May 05 19:26:05 k8s02 dockerd[23921]: time="2019-05-05T19:26:05.788206959+08:00" level=error msg="[graphdriver] prior storage driver overlay2 failed: driver not supported"
May 05 19:26:05 k8s02 dockerd[23921]: Error starting daemon: error initializing graphdriver: driver not supported
May 05 19:26:05 k8s02 systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
May 05 19:26:05 k8s02 systemd[1]: Failed to start Docker Application Container Engine.
May 05 19:26:05 k8s02 systemd[1]: Unit docker.service entered failed state.
May 05 19:26:05 k8s02 systemd[1]: docker.service failed

解决方法
[root@k8s02 ~]# rm -fr /var/lib/docker/*
[root@k8s02 ~]# systemctl start docker

<think>好的,我现在要帮用户解决CentOS上Docker服务启动失败的问题。首先,我需要回忆一下用户提供的引用内容,里面提到了几个可能的错误,比如SELinux不支持overlay2驱动,还有systemd服务启动失败的情况。用户还提到了设置yum源的步骤,可能和安装有关。 首先,我应该从常见的错误入手。根据引用[1],error initializing graphdriver可能是存储驱动的问题。用户可能在CentOS上使用overlay2驱动,但引用[2]指出SELinux不支持overlay2,需要检查SELinux状态。解决方法可能是禁用SELinux或者改用其他驱动,比如devicemapper。 接下来,用户提到了systemctl --state=failed,这说明有服务启动失败。需要运行systemctl status docker.service和journalctl -xe来查看详细日志,找出具体的错误信息。比如,如果看到关于存储驱动的报错,就需要调整daemon.json配置文件,设置正确的驱动,并重启服务。 另外,安装Docker时的yum源是否正确?引用[3]显示用户添加了docker-ce的官方源,但可能没有启用或者有冲突的旧版本。需要确认仓库已正确配置,并彻底卸载旧版本,再重新安装。 还有,内核模块的问题。引用[4]提到systemd-modules-load.service加载失败,可能缺少overlay或aufs模块。需要检查modprobe overlay是否成功,必要时更新内核或启用相关模块。 可能还需要考虑磁盘空间,Docker需要足够的空间来运行。使用df -h查看,清理不必要的文件。 最后,如果所有步骤都失败,可能需要更详细的日志分析,或者考虑升级Docker版本,甚至操作系统版本是否兼容。 用户可能需要分步骤执行这些检查,逐步排除问题。比如先检查SELinux,再查看存储驱动配置,然后确认安装步骤正确,最后检查内核模块和磁盘空间。如果还是不行,根据日志进一步处理。</think>### CentOS Docker服务启动失败的解决方案 #### 一、检查SELinux与存储驱动冲突 1. 当出现`Error starting daemon: SELinux is not supported with overlay2`报错时,需要临时禁用SELinux: ```bash $ sudo setenforce 0 ``` 或修改`/etc/sysconfig/selinux`设置为`SELINUX=disabled`[^2] 2. 强制指定存储驱动为`devicemapper`: ```bash $ sudo dockerd --storage-driver=devicemapper ``` 或修改`/etc/docker/daemon.json`添加: ```json { "storage-driver": "devicemapper" } ``` #### 二、验证服务状态与日志 ```bash $ systemctl status docker.service # 查看实时状态 $ journalctl -xe -u docker.service # 查看完整日志 ``` 若显示`failed to start daemon: error initializing graphdriver`,需重建存储目录: ```bash $ sudo rm -rf /var/lib/docker $ sudo systemctl start docker ``` #### 三、检查安装完整性 1. 确认已正确配置yum源: ```bash $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo [^3] ``` 2. 完全卸载旧版本: ```bash $ sudo yum remove docker* containerd runc ``` 3. 重新安装: ```bash $ sudo yum install docker-ce docker-ce-cli containerd.io ``` #### 四、内核模块检查 ```bash $ lsmod | grep overlay # 验证overlay模块加载 $ sudo modprobe overlay # 手动加载模块 ``` 若出现`systemd-modules-load.service failed`,需更新内核: ```bash $ sudo yum update kernel -y ``` #### 五、磁盘空间验证 使用命令检查存储空间: ```bash $ df -h /var/lib/docker # 建议保留至少10GB空间 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值