承接上一篇文章,定期清理docker,仍感觉有些累,这个变更一下缓存路径,可以根本解决问题。
linux磁盘清理_docker/overlay2爆满_linux overlay目录满了-****博客
当然,变更docker的缓存路径,也可以使用上一篇文章进行清理。
1. 概述
docker使用/var/lib/docker 作为默认存储位置,其中包含了 docker 的所有数据,包括镜像、容器、卷和网络配置等。overlay2 是 docker 支持的一种存储驱动,用于管理 docker 容器的文件系统层。如果您发现/var/lib/docker/overlay2 目录太大(可以参考上一篇文章进行查询),有如下四种方法可以迁移这个目录到一个新的路径。
2. 方法一(推荐)
# 停止docker服务
sudo systemctl stop docker
# 如果这里提示有docker.socket还在运行,需要
sudo systemctl stop docker.socket
# 或者使用sudo systemctl status docker;确保docker已经停止。
# 复制现有docker数据至新缓存路径
sudo rsync -aP /var/lib/docker/ /new/path/docker/
# rsync 是一个很强大的工具,用于复制和同步文件;
#-a 参数用于保持文件的权限和属性
#-P 提供了进度信息并支持大文件的部分传输
# 修改配置文件
# 通过/etc/docker/daemon.json(如果文件不存在,则需要创建)来指定新的数据路径:
# 文件内容如下:
{
"data-root": "/new/path/docker"
}
# 重启docker
sudo systemctl start docker
docker info | grep "Docker Root Dir"
# 应该显示新的路径 /new/path/docker。
# 运行docker
# 用自己的环境,按原有使用方法进行docker使用,确认所有的容器和镜像都可以正常访问后,可以删除旧的docker数据以释放空间。
#请确保新的docker数据位置正常工作之后再执行此命令
sudo rm -rf /var/lib/docker/
注意:在这样做之前,请确保备份您的重要数据,以免数据丢失。此外,在执行这些命令之前,请仔细检查并确认无误,特别是在使用诸如 rm -rf 这样的具有破坏力的命令时。如果您在操作过程中遇到任何问题,应该先在一个不太重要的系统上练习操作,或者寻求专业帮助。
3. 方法二:使用软链接
如果不想修改docker配置,也可以使用软链接。受限把当前的overlay2目录移动到新位置,然后创建一个指向新位置的软链接。
# 停止Docker服务:
sudo systemctl stop docker
# 移动overlay2目录至新路径:
sudo mv /var/lib/docker/overlay2 /new/path/overlay2
# 创建软链接:
sudo ln -s /new/path/overlay2 /var/lib/docker/overlay2
# 启动Docker服务:
sudo systemctl start docker
4. 方法三:使用mount绑定
# 停止Docker服务:
sudo systemctl stop docker
# 移动overlay2目录至新路径:
sudo mv /var/lib/docker/overlay2 /new/path/overlay2
# 挂载新路径到overlay2:
sudo mount --bind /new/path/overlay2 /var/lib/docker/overlay2
# 为了使这个挂载在系统重启后持久化,需要编辑/etc/fstab文件添加相应的挂载项:
/new/path/overlay2 /var/lib/docker/overlay2 none bind 0 0
# 启动Docker服务:
sudo systemctl start docker
5. 方法四:LVM逻辑卷管理
如果运行Docker的磁盘空间不足,可以使用LVM来动态调整磁盘分区的大小,或者添加新的物理存储设备到卷组中。然后可以调整现有的Docker存储位置的大小或创建一个新的逻辑卷,并将Docker的数据迁移过去。
不过请注意,这种方法对LVM有一定的了解要求,并且在对现有分区大小调整时应该非常小心,以防数据丢失。
6. 注意事项:
【其实第一种方法就足够了。】
无论你选择哪种方法,都要确保在进行任何操作前备份好数据,以防意外发生。操作完成后,验证一下Docker服务是否顺利运行,并确保新的存储路径正确无误。如果不确定操作,建议在非生产环境下进行练习和测试,或者寻求专业帮助。