Docker 没法启动的问题解决

首先看报错信息: git

~  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 后又回莫名其妙挂掉,以下 github

[root@localhost docker]# service docker status
docker dead but subsys locked

可能还有些会报错说pid啥的,统一解决方案以下: docker

rm /var/run/docker.*   
rm /var/lock/subsys/docker

此时再查看docker的状态便会限制为正常的中止运行状态 shell

重启docker服务后又回重复出现上面的错误 api

其中docker的一些命令也不能使用,docker ps,docker info之类的,报错以下: ui

FATA[0000] Cannot connect to the Docker daemon. Is 'docker -d' running on this host?

看来是docker的守护进程没起来,而关于docker进程没起来的缘由可能会有不少,好比 this

模块没加载,系统内核版本太低,硬盘空间不足等等 spa

百度搜了一圈,国内大多都是抄来抄去,大多雷同,谷歌了一番,英文不太好,也没找到很合适的方案 unix

如: code

官方的一篇issue中有关于上面几种可能的缘由中的一些解决方案

https://github.com/docker/docker/issues/6325

修改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