使用软连接的方式修改Docker数据存储目录
前言
Docker 安装的东西多了或者目录分配大小未提前规划好,就容易出现磁盘空间不足的问题,可以采用软链接的方式迁移数据目录空间。
为什么使用符号链接?
创建符号链接的好处在于,你无需修改 Docker 配置文件 /etc/docker/daemon.json
。符号链接能够将 Docker 默认查找的数据目录路径 /var/lib/docker
指向新的位置,从而让 Docker 无缝找到其数据目录。
迁移步骤
按照以下步骤操作,即可成功迁移 Docker 数据目录:
停止 Docker 服务
首先,确保停止 Docker 服务,以避免在复制数据时出现文件被占用的情况。
1
sudo systemctl stop docker
复制 Docker 数据目录
使用
cp
命令复制/var/lib/docker
目录到新的位置/home/app
下。-a
选项表示归档模式,会保留文件的所有属性和权限,-u
表示仅在目标文件不存在或源文件更新时进行复制。1
sudo cp -au /var/lib/docker /home/app
重命名原始 Docker 目录
为了确保数据安全,可以将原始的 Docker 目录重命名,而不是直接删除。这是一个备份步骤,以防出现意外情况。
1
sudo mv /var/lib/docker /var/lib/docker.old
创建符号链接
创建一个符号链接,将
/var/lib/docker
指向新的数据目录/home/app/docker
。这样,Docker 会继续在/var/lib/docker
路径下查找数据目录,但实际上数据已经被存储在新的位置。1
sudo ln -s /home/app/docker /var/lib/docker
启动 Docker 服务
最后,重新启动 Docker 服务,使所有更改生效。
1
sudo systemctl start docker
验证迁移
迁移完成后,你可以验证 Docker 是否在新的位置正常运行。运行以下命令,查看 Docker 根目录:
1 | sudo docker info | grep "Docker Root Dir" |
输出应显示新的 Docker 根目录 /home/app/docker
。
总结
通过创建符号链接,你可以轻松地将 Docker 数据目录迁移到新的位置,而无需修改 Docker 的配置文件。这种方法简便且安全,确保 Docker 能够正确找到其数据目录,并且在整个迁移过程中不会丢失任何重要数据。
现在,Docker 将使用新的数据目录来存储数据。
请注意,在修改 Docker 数据目录时,需要确保新的数据目录已存在且有足够的磁盘空间可供使用。