JiuyeXD's Blog
九叶
九叶博主

越努力 越幸运

登录
夜间

修改Docker容器默认存储路径

1. 问题描述

今天在导入一个千万级数据库备份文件的时候同事突然和我说本地服务启动不了 报redis无法持久化错误

我去排查了一下 发现是docker挂载的分区容量满了 无法再向硬盘上写入数据

c2b3a42e23d65a8bd0cab6c29ec2957.png

所以我们现在有两个方案

  1. 扩容docker所在的分区
  2. 将docker存储路径修改

由于没有闲置的硬盘 如果需要扩容分区的话 只能缩减 /home 中的容量

有一定的数据风险 所以我们选择方案2

2. 解决方法

2.1查看docker存储路径

docker info | grep -i root

VeryCapture_20220507120022.jpg

由此可见 docker存储路径是 /var/lib/docker

2.2 停止docker运行

systemctl stop docker

2.3 移动docker存储文件

mkdir /home/docker
rsync -avzP /var/lib/docker/ /home/docker

等待同步成功

VeryCapture_20220507120725.jpg

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 命令查看存储目录是否改变

VeryCapture_20220507121251.jpg

THE END