记一次docker启动失败的问题排查与解决

简介: docker启动失败问题排查与常见解决方案

背景

国庆假期回来,照例将内网几台服务器开机启动,其中一台的docker服务却怎么都启动不起来。

根据报错提示中journalctl -xe命令查看细节日志,发现docker服务初始化失败。

常见解决方案

在网上查询了一些方法,主要有以下两种:

1.umask更改docker权限

systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service

来源:https://www.jb51.cc/docker/1038977.html

2.创建daemon.json文件

vi /etc/docker/daemon.json  # 编辑此文件,并插入内容{}

来源:http://www.bubuko.com/infodetail-3730260.html

问题排查与解决

试了一下,第一种方式不行,第二种因为我本地本身就有此文件,所以无需尝试。

但是在查看daemon.json文件时,其中有一项配置"graph": "/home/docker_home"给了我启发,因为我曾经更改过docker的主目录,于是查看/home下的docker_home目录:

发现并无此目录,/home下只有区区两三个目录,这显然不对。这才想起这台服务器一直挂载了一块磁盘,就挂载在/home下,于是通过“df -h”命令发现/home目录只有53G,该磁盘并未挂载。

问题原因:存有docker相关文件目录的磁盘未挂载

查看磁盘挂载情况:

fdsik -l# 查看磁盘挂载情况

找到了该块磁盘/dev/sdb

解决方案:挂载指定磁盘到指定目录

挂载磁盘:

mount /dev/sdb /home  # 将磁盘/dev/sdb挂载到/home目录下

再次查看/home目录,原来的docker_home目录已恢复:

重启docker服务:

systemctl start docker
systemctl status docker

docker服务已恢复正常:

小结

此次docker初始化失败问题的原因是由于我更改过docker的主目录,而docker的主目录存放于某个磁盘中,该磁盘未挂载,所以找不到docker相关目录文件所致。挂载磁盘、重启docker后恢复正常。

至于为什么更改docker主目录,是因为docker安装后默认主目录为/var/lib/docker,默认每个docker容器容量上限为50GB,改到/home下后,docker容器的容量就没有上限,/home所在磁盘容量越大,docker容器的容量就越大。当然也可以通过其他方式扩展docker容器的容量。

相关文章
|
监控 关系型数据库 MySQL
Docker 容器启动失败日志分析方法,启动sonic容器实例simple时未报错运行一会又停止的问题排查实例演示
Docker 容器启动失败日志分析方法,启动sonic容器实例simple时未报错运行一会又停止的问题排查实例演示
607 0
Docker 容器启动失败日志分析方法,启动sonic容器实例simple时未报错运行一会又停止的问题排查实例演示
|
Kubernetes 监控 Java
【JVM故障问题排查心得】「内存诊断系列」Docker容器经常被kill掉,k8s中该节点的pod也被驱赶,怎么分析?
【JVM故障问题排查心得】「内存诊断系列」Docker容器经常被kill掉,k8s中该节点的pod也被驱赶,怎么分析?
797 0
【JVM故障问题排查心得】「内存诊断系列」Docker容器经常被kill掉,k8s中该节点的pod也被驱赶,怎么分析?
|
3月前
|
安全 Go Docker
Go服务Docker Pod不断重启排查和解决
该文章分享了Go服务在Docker Pod中不断重启的问题排查过程和解决方案,识别出并发写map导致fatal error的问题,并提供了使用sync.Map或concurrent-map库作为并发安全的替代方案。
39 4
|
6月前
|
Docker 容器
Docker服务启动失败报错:Job for docker.service failed because the control process exited with error code.
Docker服务启动失败报错:Job for docker.service failed because the control process exited with error code.
|
6月前
|
运维 应用服务中间件 nginx
【docker】记录一次nginx启动失败的检测
【docker】记录一次nginx启动失败的检测
168 1
|
Docker 容器
Docker容器占用CPU和内存高排查
Docker容器占用CPU和内存高排查
|
Java API Docker
【JVM故障问题排查心得】「内存诊断系列」Xmx和Xms的大小是小于Docker容器以及Pod的大小的,为啥还是会出现OOMKilled?
【JVM故障问题排查心得】「内存诊断系列」Xmx和Xms的大小是小于Docker容器以及Pod的大小的,为啥还是会出现OOMKilled?
535 0
【JVM故障问题排查心得】「内存诊断系列」Xmx和Xms的大小是小于Docker容器以及Pod的大小的,为啥还是会出现OOMKilled?
|
Docker 容器
|
弹性计算 Ubuntu Linux
XEN实例迁移到VPC后Docker容器启动失败
XEN实例迁移到VPC后Docker容器启动失败