Docker容器数据迁移与默认存储位置修改指南

-
-
2024-04-26

在Docker容器的长期使用过程中,可能会遇到磁盘空间不足的问题。这通常是因为Docker的默认数据存放目录/var/lib/docker占用了大量的存储空间。本文将介绍如何安全地迁移Docker数据,并修改Docker的默认存储位置以释放空间。

步骤1:停止Docker服务

在进行任何迁移操作之前,需要确保Docker服务是停止的,以避免数据损坏。

sudo systemctl stop docker

步骤2:创建新的Docker目录

创建一个新的目录来存放Docker数据。这里我们选择/mnt/data/docker_data作为新的位置。

sudo mkdir -p /mnt/data/docker_data

步骤3:迁移Docker数据

使用rsync命令将旧的Docker数据迁移到新的位置。为了确保迁移的成功,建议逐个文件进行迁移。

sudo rsync -avz /var/lib/docker/* /mnt/data/docker_data/

如果在迁移过程中遇到“设备上没有空间”的错误,可以使用mv命令剪切文件。

步骤4:修改Docker配置

为了使Docker使用新的数据存放目录,需要修改Docker的配置文件。

  1. 创建Docker服务的配置目录(如果不存在):
    sudo mkdir -p /etc/systemd/system/docker.service.d
  2. 编辑Docker服务的配置文件:
    sudo vi /etc/systemd/system/docker.service.d/devicemapper.conf
  3. 在配置文件中添加以下内容:
    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd --graph=/mnt/data/docker_data
    # 如果有私有仓库,可以添加如下行:
    # --insecure-registry=私服地址
  4. 保存并关闭配置文件。

步骤5:重载配置并重启Docker服务

重载systemd的配置,并重启Docker服务。

sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker

步骤6:验证并清理旧数据

在确认新的Docker存储位置工作正常,且所有容器都运行无误后,可以安全地删除旧的Docker数据目录。

sudo rm -rf /var/lib/docker

如果在删除过程中遇到“Device or resource busy”的错误,需要先卸载相应的目录。

sudo umount 此处为对应删除不了的文件夹全路径

结语

通过上述步骤,您可以成功迁移Docker的数据,并更改其默认的存储位置,从而释放宝贵的磁盘空间。在执行这些操作时,请确保谨慎行事,以避免数据丢失或服务中断。

“您的支持是我持续分享的动力”

微信收款码
微信
支付宝收款码
支付宝

目录