记一次docker启动失败的问题排查与解决
背景
国庆假期回来,照例将内网几台服务器重启,其中一台的docker服务却怎么都启动不起来。
根据报错提示中journalctlxe命令查看细节日志,发现docker服务初始化失败。常见解决方案
在网上查询了一些方法,主要有以下两种:1。umask更改docker权限systemctlunmaskdocker。servicesystemctlunmaskdocker。socketsystemctlstartdocker。service
来源:https:www。jb51。ccdocker1038977。html2。创建daemon。json文件vietcdockerdaemon。json编辑此文件,并插入内容{}
来源:http:www。bubuko。cominfodetail3730260。html问题排查与解决
试了一下,第一种方式不行,第二种因为我本地本身就有此文件,所以无需尝试。
但是在查看daemon。json文件时,其中有一项配置graph:homedockerhome给了我启发,因为我曾经更改过docker的主目录,于是查看home下的dockerhome目录:
发现并无此目录,home下只有区区两三个目录,这显然不对。这才想起这台服务器一直挂载了一块磁盘,就挂载在home下,于是通过dfh命令发现home目录只有53G,该磁盘并未挂载。问题原因:存有docker相关文件目录的磁盘未挂载
查看磁盘挂载情况:fdsikl查看磁盘挂载情况
找到了该块磁盘devsdb
解决方案:挂载指定磁盘到指定目录
挂载磁盘:mountdevsdbhome将磁盘devsdb挂载到home目录下
再次查看home目录,原来的dockerhome目录已恢复:
重启docker服务:systemctlstartdockersystemctlstatusdocker
docker服务已恢复正常:
小结
此次docker初始化失败问题的原因是由于我更改过docker的主目录,而docker的主目录存放于某个磁盘中,该磁盘未挂载,所以找不到docker相关目录文件所致。挂载磁盘、重启docker后恢复正常。
至于为什么更改docker主目录,是因为docker安装后默认主目录为varlibdocker,默认每个docker容器容量上限为50GB,改到home下后,docker容器的容量就没有上限,home所在磁盘容量越大,docker容器的容量就越大。当然也可以通过其他方式扩展docker容器的容量。