docker.service启动报错的一次排查详解

(编辑:jimmy 日期: 2024/12/23 浏览:2)

执行以下命令报错

systemctl restart docker

查看错误信息

systemctl status docker -l

报错信息如下:

● docker.service - Docker Application Container Engine
  Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
 Drop-In: /etc/systemd/system/docker.service.d
      └─kolla.conf
  Active: failed (Result: exit-code) since 三 2018-08-01 16:32:27 CST; 52min ago
   Docs: https://docs.docker.com
 Process: 3833722 ExecStart=/usr/bin/docker daemon --insecure-registry 172.16.59.153 (code=exited, status=1/FAILURE)
 Main PID: 3833722 (code=exited, status=1/FAILURE)
  Memory: 8.0K
  CGroup: /system.slice/docker.service

8月 01 16:32:26 czwei004 systemd[1]: Starting Docker Application Container Engine...
8月 01 16:32:26 czwei004 docker[3833722]: time="2018-08-01T16:32:26.527063936+08:00" level=info msg="libcontainerd: new containerd process, pid: 3833733"
8月 01 16:32:27 czwei004 docker[3833722]: time="2018-08-01T16:32:27.532317497+08:00" level=warning msg="devmapper: Usage of loopback devices is strongly discouraged for production use. Please use `--storage-opt dm.thinpooldev` or use `man docker` to refer to dm.thinpooldev section."
8月 01 16:32:27 czwei004 docker[3833722]: time="2018-08-01T16:32:27.560010414+08:00" level=warning msg="devmapper: Base device already exists and has filesystem xfs on it. User specified filesystem will be ignored."
8月 01 16:32:27 czwei004 docker[3833722]: time="2018-08-01T16:32:27.577758251+08:00" level=fatal msg="Error starting daemon: error initializing graphdriver: \"/var/lib/docker\" contains several valid graphdrivers: devicemapper, overlay2; Please cleanup or explicitly choose storage driver (-s <DRIVER>)"
8月 01 16:32:27 czwei004 systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
8月 01 16:32:27 czwei004 systemd[1]: Failed to start Docker Application Container Engine.
8月 01 16:32:27 czwei004 systemd[1]: Unit docker.service entered failed state.
8月 01 16:32:27 czwei004 systemd[1]: docker.service failed.

注意到以上错误信息中

msg="Error starting daemon: error initializing graphdriver: \"/var/lib/docker\" contains several valid graphdrivers: devicemapper, overlay2; Please cleanup or explicitly choose storage driver (-s <DRIVER>)"

到docker目录下查看,有devicemapper的目录和overlay2的目录

原因是我之前装了高版本的docker-engine,默认的存储驱动是overlay2,卸载的时候docker目录下残留了overlay2的文件夹,后来安装了低版本的docker,默认的又是devicemapper,于是就有了多个存储驱动

重启机器后删除overlay2的目录后可以启动。

补充知识:CentOS7修改Docker镜像默认存储位置

停止docker服务

# systemctl stop docker

修改docker服务启动文件

# vim /etc/sysconfig/docker

OPTIONS='--selinux-enabled --log-driver=journald --graph=/docker --signature-verification=false --insecure-registry 192.168.1.1'
#--insecure-registry 192.168.1.1这是仓库地址可以忽略
# /docker这个目录就是我用于替代默认/var/lib/docker的目录,目录创建好之后记得“mv /var/lib/docker/* /docker/”,把所有原

先目录下所有的文件和目录拷贝到新目录下。

重新加载配置并启动

# systemctl daemon-reload

# systemctl start docker

检查docker信息

# docker info

以上这篇docker.service启动报错的一次排查详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。