准确来说应该是今天升级了阿里云的ECS内存之后重启实例,结果发现所有跟docker相关的东西都坏掉了。docker启动不了,所有镜像都查不到。我们的gitlab是用的docker,所以必须要把这个给弄好。

查看docker相关的文件和镜像容器都在,所以猜测数据可能没受到损坏。具体修复过程分为以下几个阶段:

1、这是由于重启了服务器造成的,所以有可能再重启一次情况会回复,但是重启后结果还是不行。

2、启动docker 的时候执行service docker start指令,显示数据如下图:

docker start/running,process 。这条指令并没有说明docker已经运行,因为我查询所有进程的时候根本没有docker,具体原因可以百度下。

3、找大神帮忙,加入了几个docker群,其中在docker分享群2中几位大神纷纷出来指点。

其中一位说service 只是相当于一个快捷方式,这样启动不了就去docker下直接手动启动。可是我找了半天没找到在哪启动。第二位朋友说dockerd指令,这个是手动启动docker的,可是执行后还是不行,(./dockerd也失败)

提示信息里说可能没有安装docker。可是我重启服务器之前运行了将近半年都是OK的,但是我不排除重启后docker完全损坏,不被识别的可能。

使用uname -a查看内核版本,看看是不是不支持docker。按照他的解释是,他之前遇到过,重启服务器之后内核更新了,导致不支持docker.所以这也是一种可能。

查看docker版本:

我这里是1.6.2的客户端,

linux内核3.13

确认了我的服务器内核是支持docker的,所以把这个可能排除。

其中杭州的以为朋友注意到,我上边的错误提示里有一句缺少docker.sock文件。所以建议我在相应的目录下简历docker.sock。上边提示信息的完整路径是/var/run/docker.sock。

按照上边说的建立后,再执行出现以下信息:


这时候注意后边那条提示,shutting down.....,看到这之后大神给出一条指令sudo apt-get install apparmor,说执行完之后就没问题了。

执行完之后果断docker可以起来了


top中查询:



消失已久的docker终于出来了,而且docker下以前建立的容器都还在,手动起一下就好。


感谢各位大神的帮助,我的docker又复活了。总之不熟悉这个的朋友最好还是慎用,或者有人指点也好,省的不知道出问题之后该找谁。

Logo

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

更多推荐