docker把系统盘占满后的恢复

docker报【Error response from daemon: Error running DeviceCreate (createSnapDevice) dm_task_run failed

docker默认数据都保存在/var/lib/docker目录下,默认情况下根分区空间都不大,在网上找到个方案:
service docker stop
cp -prf /var/lib/docker /data/
rm -rf /var/lib/docker

使用ln链接 或

启动时使用--graph参数来指定存储路径。  --data-root
或者使用systemd来管理服务, 就在docker.service中修改这一行:

ExecStart=/usr/bin/dockerd --graph=/path/to/docker/dir 

重启后执行sudo docker info | grep "Root Dir",可以看到根路径已经改变了。

thin_check /data/docker/devicemapper/devicemapper/metadata
thin_check --clear-needs-check-flag /data/docker/devicemapper/devicemapper/metadata
service docker start

后续步骤:

    1. 删除没启动的images:
      docker rmi $(docker images -q)
    2. 删除没启动的containers
      docker rm $(docker ps -a -q)
原文地址:https://www.cnblogs.com/zhangeamon/p/7130518.html