偶尔,我会遇到DOKER分配和继续使用磁盘空间的问题,即使空间没有分配给任何特定的图像或现有的容器。我偶然产生这个问题的最新方法是在RHEL7.1中使用“docker engine”centos build而不是“docker”。似乎有时容器清理没有成功完成,然后空间就永远不会被重用。当我分配的80GB驱动器被/var/lib/docker文件填满时,我不得不想出一个创造性的方法来解决这个问题。
这是我想到的。首先要解决磁盘已满错误:
-
停止docker:systemctl停止docker
-
-
将/var/lib/docker中的所有文件移到/mnt/docker。我使用命令:rsync-aPHSx--remove source files/var/lib/docker//mnt/docker/
-
将新驱动器装载到/var/lib/docker。
在这一点上,我不再有一个磁盘已满的错误,但我仍然在浪费大量的空间。下一步就是解决这个问题。
-
-
保存所有图像:
docker节省$(docker图像| s e d-e'/^/d'-e'/^存储库/d'-e's,[[]
,:,'-e's,[]。
-
卸载docker。
-
删除/var/lib/docker中的所有内容:
-
重新安装docker
-
启用docker:systemctl启用docker
-
-
还原图像:
docker load</根/docker.img
-
启动任何需要运行的持久化容器。
我不推荐每天使用这个。但当docker由于软件错误或意外重新启动而丢失已用磁盘空间的记录时,运行它是很有用的。