docker在Ubuntu中不能正常启动的解决办法

docker有时候会不能正常工作,有时候非得重启机器才行,确实很麻烦。

根据我的经验,在Ubuntu中docker出现的一般性问题都比较容易解决。

首先清理docker运行中的所有进程和产生的文件stop docker,如果用systemctl的话就是systemctl stop docker,remove在/run目录下所有跟docker相关的东西。

#systemctl stop docker; rm /run/docker*

如果一切正常,docker的进程及其残留文件应该被杀死了,这个时候直接运行dockerd

#dockerd

如果能够出现dockerd在监听的log证明docker可以正常启动了,这个时候只有restore docker就好了。如果没有正常启动那这一步会提示你出错的原因,一般的原因为:

kernel issue,module没有支持之类的错误,这时候就需要重新编译kernel,将缺失的模块编进去。在moby的代码下面有一个check脚本用来检测环境非常有用。

如果上面的办法还没有奏效就只能使用终极大法了,因为这招具有破坏性,一般不建议使用,除非你的docker image之类的东西都不要了。

#systemctl stop docker; rm /run/docker* ; mv /var/lib/docker /var/lib/docker.bk

这招基本会消灭掉docker在运行状态和静态的工作目录。这个时候直接运行dockerd,如果正常启动,一切OK,如果这招依然没有奏效,你可以去问问Google了或者洗洗睡吧。

你可能感兴趣的:(linux,docker)