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

执行以下命令报错

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启动报错的一次排查详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Docker在线、离线安装及其常用命令操作

    一.测试环境 名称 版本 centos 7.6 docker 18.09.06 二.在线安装 这里采用yum源命令安装前期准备的依赖包,包括yum-utils.device-mapper-persistent-data.lvm2 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 因为官方镜像仓库网速较慢,在此设置阿里云镜像代理,以便快速下载.上传镜像. sudo yum-config-manager --add-re

  • Docker service命令详解(小结)

    在分布式应用程序中,应用程序的不同部分被称为"服务".例如,如果有一个视频共享网站,它可能包括一个用于将应用程序数据存储在数据库中的服务,一个在用户上传东西后在后台进行视频转码的服务,一个用于前端页面的服务等等. 服务实际上只是"生产中的容器".每个服务只运行一个映像,但它编码了镜像的运行方式 - 应该使用哪个端口,容器应运行多少个副本以满足性能要求等等. 伸缩服务可以更改运行该软件的容器实例的数量,从而为进程中的服务分配更多计算资源. 定义.运行和伸缩 Docke

  • 对docker中的overlay式网络详解

    翻译自docker官方文档,原文:https://docs.docker.com/network/overlay/ overlay(覆盖)式网络会在多个docker守护进程所在的主机之间创建一个分布式的网络.这个网络会覆盖宿主机特有的网络,并允许容器连接它(包括集群服务中的容器)来安全通信.显然,docker会处理docker守护进程源容器和目标容器之间的数据报的路由. 当你初始化一个集群(swarm)或把一个docker宿主机加入一个已经存在的集群时,宿主机上会新建两个网络: 一个叫ingre

  • docker.service启动失败:Unit not found的原因及解决办法

    背景 因为最近一直在折腾Kubernetes集群版本升级.Docker版本升级,所以不停的把测试环境安装.还原.升级.降级,简直乱的不行.终于,在测试Docker版本升级后,启动Docker时,遇到了docker.service: Unit not found.问题虽然不大,但是却折磨了我几个小时,所以在此mark一下. 操作系统:Red Hat Enterprise Linux 7 原因1:docker.socket 最初在启动docker时遇到问题,是因为docker.socket引起的,虽

  • 使用docker搭建kong集群操作

    docker容器下搭建kong的集群很简单,官网介绍的也很简单,初学者也许往往不知道如何去处理,经过本人的呕心沥血的琢磨,终于搭建出来了. 主要思想:不同的kong连接同一个数据库(就这么一句话) 难点:如何在不同的主机上用kong连接同一数据库 要求: 1.两台主机 172.16.100.101 172.16.100.102 步骤: 1.在101上安装数据库(这里就用cassandra) docker run -d --name kong-database \ -p 9042:9042 \ c

  • 给Docker更换国内镜像源操作

    给Docker守护进程配置加速器 通过配置文件启动Docker,修改/etc/docker/daemon.json 文件并添加上 registry-mirrors 键值. vim /etc/docker/daemon.json { "registry-mirrors": ["http://hub-mirror.c.163.com"] } 修改保存后,重启 Docker 以使配置生效. service docker restart 补充知识:docker配置镜像加速器

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

    执行以下命令报错 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

  • 解决IDEA配置tomcat启动报错问题

    在配置servlet不同路径时遇上以下两个错误: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String:  java.lang.ClassNotFoundException: org.apache.jsp.index_jsp: 对于第一个问题,我上网查阅了很多资料后发现,可能是tomcat版本冲突导致,catalina log如下: 19-Feb-2018

  • 解决docker pull镜像报错的问题

    描述: 在win10下安装VM,在VM里运行docker,使用docker pull拉取镜像时报错 一. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 原因: 使用docker pull 命令拉取镜像时,如果不添加额外的信息如docker pull nginx

  • 解决MySQL启动报错:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)

    这个错误是新手经常会遇到的,本文主要介绍如何修复ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) 解决方案: 1.登录到安装Mysql的主机,打开cmd命令行工具,执行命令mysql -uroot -p,报出下面所描述的错误: 2.在开始菜单中找到计算机管理,在计算机管理中找到[服务],在服务检查是否存在Mysql服务: 3.如果[步骤2]中找不到Mysql服务需要手动安装Mysql服务,安装命令为m

  • mysql启动报错:The server quit without updating PID file的几种解决办法汇总

    1.目录权限问题 对mysql的安装目录和数据目录分别进行授权 #chown -R mysql.mysql /usr/local/mysql #chown -R mysql.mysql /data/mysql #service mysqld start 2.可能进程里已经存在mysql进程 解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld! 3.可能是第二次在机器上安装mysql,有残余数据影响

  • Apache启动报错No space left on device: AH00023该怎么解决

    Apache启动报错No space left on device: AH00023错误可能是进程导致了,虽然小编不知道什么原因但网上提供的解决办法确实是可以解决我们的问题,下面来看看. 对于这类错误是因为linux系统的ipc信号量造成的,apache启动时,会创建很多子进程.他们是通过信号量来和子进程进行通信的. 信号量介绍: 信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信.本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取

  • CentOS 6.5上的Tomcat启动报错问题解决方法

    这里有两个错误: 1.第一个错误,APR的问题,错误详情: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path 2.第二个错误,错误详情: Exception in thread "main" java.lang.InternalError        

  • SpringBoot启动报错Failed to determine a suitable driver class

    SpringBoot启动报错如下 Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2019-05-06 21:27:18.275 ERROR 10968 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** AP

  • 解决python运行启动报错问题

    问题一: python启动报错api-ms-win-crt-process-l1-1-0.dll 丢失 解决: 下载api-ms-win-crt-process-l1-1-0.dll文件丢到C:\Windows\SysWOW64(64位操作系统).C:\Windows\System32(32位操作系统)目录下 问题二: python运行时错误代码(0xc000007b) 解决: 下载directxrepair工具修复系统文件,修复成功后手动重启电脑 补充知识:Python3开启自带http服务

随机推荐