首先看报错信息:
~ sudo docker -d[sudo] password for prat0318:2014/06/10 02:26:34 docker daemon: 1.0.0 63fe64c; execdriver: native; graphdriver:[29daee74] +job initserver()[29daee74.initserver()] Creating server[29daee74] +job serveapi(unix:///var/run/docker.sock)2014/06/10 02:26:34 Listening for HTTP on unix (/var/run/docker.sock)Error running DeviceCreate (createPool) dm_task_run failed[29daee74] -job initserver() = ERR (1)2014/06/10 02:26:34 Error running DeviceCreate (createPool) dm_task_run failed
Docker无法启动 /etc/init.d/docker start 后又回莫名其妙挂掉,如下
[root@localhost docker]# service docker statusdocker dead but subsys locked
可能还有些会报错说pid啥的,统一解决方案如下:
rm /var/run/docker.* rm /var/lock/subsys/docker
此时再查看docker的状态便会限制为正常的停止运行状态
重启docker服务后又回重复出现上面的错误
其中docker的一些命令也不能使用,如docker ps,docker info之类的,报错如下:
FATA[0000] Cannot connect to the Docker daemon. Is 'docker -d' running on this host?
看来是docker的守护进程没起来,而关于docker进程没起来的原因可能会有很多,比如
模块没加载,系统内核版本过低,硬盘空间不足等等
百度搜了一圈,国内大多都是抄来抄去,大多雷同,谷歌了一番,英文不太好,也没找到很合适的方案
如:
官方的一篇issue中有关于上面几种可能的原因中的一些解决方案
修改kernel内核添加修改CONFIG_DM_THIN_PROVISIONING=y
回顾下事件过程:
由于我这次docker挂掉起不来是因为docker容器目录磁盘空间爆满后的一些操作造成的,所以我还是优先考虑空间不足的问题:
docker ps #查看容器ID
docker stop id #停止容器
docker rm id #删除容器
然后就卡死了,系统重启后,docker无法启动
解决方法:
rm -rf /var/lib/docker/* #(记得备份重要数据)
哈哈 突然发现是如此的简单,前面都成扯淡的了...
cat xxx.tar.gz | docker import - name:tag
稍等片刻,成功部署...
2015-8-12更:
关于Docker停机扩容POOL空间:http://www.tuicool.com/articles/63EjyaV