记录一下那天晚上的排查过程。系统盘被容器和镜像占满,想整体迁到数据盘,又担心迁移过程中容器起不来。
把日志和配置对完,能解释这个现象的基本就这几处。默认数据目录在系统盘上。也可能是镜像层与日志长期累积。
还有一种情况,挂载卷和数据目录混在同一分区。
动手时先确认当前数据目录占用
docker info | grep -i 'docker root dir'
接着停止服务并同步数据
systemctl stop docker && rsync -aHAX /var/lib/docker/ /data/docker/
修改数据目录配置
grep -n data-root /etc/docker/daemon.json
等前面都确认过,再启动后核对镜像与容器
systemctl start docker && docker ps -a | head
同样的操作我在测试机上先走了一遍,线上只做验证过的部分。
这台环境是别人交接的,不少默认值被动过,只能一项项核。
别只看报错消失,验证要多做一步。数据目录切换到新盘,镜像和容器数量与迁移前一致,系统盘占用明显下降。
迁移前先停服务,运行中拷贝会得到不一致的镜像层;切换完成后确认挂载点在 fstab 里已经持久化。报错文案容易误导,真正的原因往往在相邻那一层的日志里。