1. 问题描述
今天在导入一个千万级数据库备份文件的时候同事突然和我说本地服务启动不了 报redis无法持久化错误
我去排查了一下 发现是docker挂载的分区容量满了 无法再向硬盘上写入数据
所以我们现在有两个方案
- 扩容docker所在的分区
- 将docker存储路径修改
由于没有闲置的硬盘 如果需要扩容分区的话 只能缩减 /home
中的容量
有一定的数据风险 所以我们选择方案2
2. 解决方法
2.1查看docker存储路径
docker info | grep -i root
由此可见 docker存储路径是 /var/lib/docker
2.2 停止docker运行
systemctl stop docker
2.3 移动docker存储文件
mkdir /home/docker
rsync -avzP /var/lib/docker/ /home/docker
等待同步成功
2.4 修改docker启动路径
vim /usr/lib/systemd/system/docker.service
# 在 ExecStart 后面追加 'graph' 参数指定目录
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph=/home/docker
保存后
# 重载服务配置文件
systemctl daemon-reload
# 启动docker
systemctl start docker
再次使用 docker info | grep -i root
命令查看存储目录是否改变