df -h 的时候发现
docker的多条 overlay 挂载行,全部依托根分区 98G存储
Docker 镜像、容器读写层全部存在 /var/lib/docker,根盘 37G 占用大部分来自 Docker
但是我的 独立数据盘(LVM 逻辑卷,你的数据盘)是/xqd
/dev/mapper/ubuntu--vg-vic_lv 367G 4.4G 344G 2% /xqd
所以决定把docker的存储转移到/xqd下。记录下过程。
sudo systemctl stop docker
sudo systemctl stop docker.socket
sudo systemctl stop containerd
# 校验无残留 docker 进程
ps aux | grep docker
sudo mkdir -p /xqd/docker/data
# 设置标准权限 root:root 710,保持和/var/lib/docker一致
sudo chown root:root /xqd/docker/data
sudo chmod 700 /xqd/docker/data
sudo rsync -avHAX /var/lib/docker/ /xqd/docker/data/
-a 归档模式,权限、属主、目录结构完整保留-v 输出拷贝日志,方便观察进度-HAX 保留硬链接、ACL、文件扩展属性(Docker 镜像必备)同步完成后可检查源目录和目标目录大小是否一致
sudo du -s /var/lib/docker
sudo du -s /xqd/docker/data
sudo mv /var/lib/docker /var/lib/docker.bak
/etc/docker/daemon.json 内追加data-root
{
"data-root": "/xqd/docker/data"
}
sudo systemctl start docker
# 查看运行状态
sudo systemctl status docker
# 验证 Docker 根目录
docker info | grep "Docker Root Dir"
# 查看本地镜像
docker images
# 查看所有容器(运行+停止)
docker ps -a
# 测试容器读写正常
docker run --rm hello-world
我觉得可以先观察下 再删除
sudo rm -rf /var/lib/docker.bak
# 1. 停止docker
sudo systemctl stop docker
# 2. 删除自定义存储配置
/etc/docker/daemon.json
# 3. 恢复原docker目录
sudo mv /var/lib/docker.bak /var/lib/docker
# 4. 重启服务
sudo systemctl start docker
镜像清理:
(清理了8个G)
docker system prune -a