变更docker的缓存路径

时间:2024-04-16 07:28:01

承接上一篇文章,定期清理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服务是否顺利运行,并确保新的存储路径正确无误。如果不确定操作,建议在非生产环境下进行练习和测试,或者寻求专业帮助。