如何修改Docker镜像和容器的默认存储路径-docker 26.1.4
如何修改Docker镜像和容器的默认存储路径-docker 26.1.4
问题需求
在默认情况下,Docker镜像和容器的默认存储路径是
/var/lib/docker,这相当于直接挂载在系统目录下。然而,通常在搭建系统时,这个分区的空间并不会设置得太大。因此,如果长期使用Docker进行应用开发,可能会导致存储空间不足的问题。为了避免这种情况,我们需要将Docker的默认存储路径更改到存储空间更大的外挂磁盘下。
之前在网上查到的资料,使用的docker版本都比较低,方法并不适用,我在此基础上进行了修改
参考文章
【CentOS 7】记一次迁移 Docker 容器存储目录的操作过程
docker磁盘空间不足解决办法
首先,我们可以通过以下命令查看Docker的默认存储路径:
[root@apps/]# docker info | grep Dir
Docker Root Dir: /var/lib/docker
处理方案
修改镜像和容器的存放路径
1. 停止Docker服务
在修改存储路径之前,首先需要停止Docker服务:
systemctl stop docker
2. 创建新的存储目录
接下来,创建一个新的目录来存放Docker的镜像和容器数据。假设我们将新的存储路径设置为 /opt/lib/docker:
mkdir -p /opt/lib/docker
3. 迁移现有数据
将现有的Docker数据从默认路径迁移到新的存储路径:
建议使用
screen -S dockermv命令新建一个窗口进行操作,迁移时间可能很长,这样方便进行其他操作
mv /var/lib/docker/* /opt/lib/docker/
如果使用screen创建新窗口了,这时候可以使用Ctrl+A,Ctrl+D分离窗口进行其他操作,如进行下一步修改配置文件👇
4. 修改Docker配置文件
Docker从17.05版本开始,弃用了 --graph 参数,改用 --data-root 参数。因此,我们需要修改Docker的配置文件,指定新的存储路径。
编辑Docker的配置文件:
vim /usr/lib/systemd/system/docker.service
找到 ExecStart 这一行,注释掉原有的配置,并添加新的配置:
# 注释掉原有的配置
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
# 添加新的配置
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/opt/lib/docker
5. 重新启动Docker服务
保存并退出编辑器后,查看是否迁移完成
Screen -R dockermv
迁移完成后,重新加载系统配置并重启Docker服务:
systemctl daemon-reload
systemctl restart docker
6. 验证变更
最后,我们可以通过以下命令验证存储路径是否已成功更改:
[root@apps/]# docker info | grep Dir
Docker Root Dir: /opt/lib/docker #预期输出
如果显示的路径为 /opt/lib/docker,则说明配置已生效。
总结
通过上面方法,我们可以成功将Docker的默认存储路径更改到更大的磁盘分区中,从而避免因存储空间不足而导致的问题。

浙公网安备 33010602011771号