问题分析

以太坊环境需要用到docker,然后很多时候虚拟机没有设置docker自启动,因此在重启docker的时候,常常出现:
Job for docker.service failed because the control process exited with error code. See “systemctl status docker.service” and “journalctl -xe” for details.这个错误。
在这里插入图片描述

解决办法

解决办法我提供两个,首先先说第一个,这个方法是我在网上看到的,但由于用了这种方法后,会加重虚拟机工作的负担,因此我先把该方法列出来,并不推荐使用。
方法一:修改docker.service文件。

sudo vim /lib/systemd/system/docker.service

在这里插入图片描述
将上图红色框内的代码部分修改成ExecStart=/usr/bin/dockerd -H fd:// -s overlay2
在这里插入图片描述
重载所修改过的配置文件

sudo systemctl daemon-reload

重启docker服务即可

sudo systemctl restart docker

说明:但由于这种方法修改后,虚拟机会出现卡顿情况,本人不推荐这种方法,至于虚拟机的卡顿情况也是基于个人虚拟机配置决定的,因此使不使用也取决各位读者。
下面的我介绍第二种方法。

方法二:删除docker存储的依赖数据

docker的engine基于Device Mapper提供的一种存储驱动,而它又依赖与 devicemapper,存储的数据目录在/var/lib/docker下。
首先进入docker存储数据目录。

cd /var/lib/docker

在这里插入图片描述
删除该目录下的所有文件夹/文件

rm -rf *

删除的时候,可能会出现设备或者资源忙的情况。
在这里插入图片描述
解决办法
先用fuser显示出当前哪个程序在使用磁盘上的aufs
然后用umount卸载正在使用aufs的应用程序

fuser -m aufs/
fuser -k aufs/
umount aufs/
rm -rf aufs/

在这里插入图片描述
删除以后就可以成功重启docker。

sudo systemctl restart docker
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐