Feelup
deepin
an hour ago 从你的描述来看,这些空的磁盘是 Docker 迁移后残留的“影子文件”。
你执行了 Docker 数据迁移,但应该是只修改了 daemon.json 配置,却没有进行进一步的清理,这就导致了下面的情况
- 新硬盘:你已经把 Docker 的数据迁移到了新的位置,Docker 目前正在正常使用它。
- 旧硬盘:原来的 /var/lib/docker 目录其实还在系统盘上。图中的“5123d1ad...7839c87d”等乱码磁盘名字,就是旧目录里残留的镜像层、容器层文件夹(overlay2 存储 ID)被磁盘管理工具误读为了独立的磁盘分区。
说明:这不是 Bug 哦,这是 Linux 的特殊机制。Docker 旧数据里的 overlay2 文件夹使用了联合文件系统技术,它会创建大量的子卷或绑定挂载,而部分磁盘管理工具(特别是图形化工具或特定文件管理器)无法区分“这是一个文件夹”还是“这是一个挂载点”,当它(磁盘管理工具)在 /var/lib/docker/overlay2/ 下看到一堆带有长 ID 的目录且里面有特定结构时,就会把它们渲染成独立的逻辑卷或磁盘。
结果就是:这些没有清理的所谓磁盘并没有真正的独立分区,它们依然消耗的是你那100GB的系统盘空间,只是在图形显示上被拆分显示了。
解决方法:
确认 Docker 当前使用的是新路径:docker info | grep "Docker Root Dir"
注意:如果你迁移到了 /data/docker 或类似路径,这里会显示新路径。确认新路径确实是你修改后的路径后,再进行下一步。
清理旧数据残骸
-
停止服务:
sudo systemctl stop docker -
删除旧的 Docker 数据目录:
sudo rm -rf /var/lib/docker- 如果你担心的话,可以先备份再删
-
重启 Docker:
systemctl start docker
一般来说,执行完上面的步骤后,磁盘列表里那些 0B 的磁盘图标应该就会消失了(没有的话,就重启一次系统)。
Reply Like 0 View the author


中文 
如图所示,在 磁盘列表里面突然就多了这些磁盘,重启后也没有解决问题
系统盘只有100G的空间,我在系统上安装了docker原先使用的是默认的路径来存储数据。然后今天系统盘提示磁盘空间不足,然后就将docker的路径迁移到了另一个位置,然后磁盘列表上就出现了这些磁盘