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
后续步骤:
- 删除没启动的images:
docker rmi $(docker images -q) - 删除没启动的containers
docker rm $(docker ps -a -q)