Docker文件目录迁移

如何迁移 Docker 目录

在默认情况下,Docker 会将所有的容器数据、镜像、卷等存储在 /var/lib/docker 目录下。作为非专业运维人员,我在测试环境部署成功后,直接投入了生产环境。然而,经过一段时间的运行,我发现系统盘的存储空间被 Docker 数据迅速占满,导致生产环境受到影响。为了保障系统的稳定运行,我开始寻找迁移 Docker 目录的方法。经过多次尝试和实践,最终总结出一套稳定可靠的解决方案,以下是详细步骤。

迁移步骤

1. 停止 Docker 服务

首先,确保 Docker 服务已经停止,以防止迁移过程中出现数据损坏。

arduino 复制代码
systemctl stop docker
systemctl stop docker.socket

2. 备份原始 Docker 目录

接下来,将 /var/lib/docker 目录进行备份,以防止迁移过程中数据丢失。

bash 复制代码
mv /var/lib/docker /var/lib/docker_bak

3. 在新位置创建 Docker 目录

假设新存储位置为 /mdata/docker/,先创建新目录结构:

bash 复制代码
cd /mdata/docker/
mkdir data

4. 复制备份数据到新目录

使用 cp -a 命令复制所有 Docker 数据到新的存储路径:

bash 复制代码
cp -a /var/lib/docker_bak data

5. 迁移数据

进入备份目录并移动所有数据到新的 data 目录:

bash 复制代码
cd data/docker_bak/
mv * ../
cd ..
rm -rf docker_bak

6. 创建符号链接

为了让 Docker 继续在默认路径 /var/lib/docker 访问数据,我们创建一个符号链接指向新路径。

bash 复制代码
ln -s /mdata/docker/data /var/lib/docker

7. 启动 Docker

最后,启动 Docker 以使变更生效。

sql 复制代码
systemctl start docker

验证迁移是否成功

执行以下命令,确保 Docker 正常运行,并且数据没有丢失。

css 复制代码
docker ps -a
docker images

如果所有容器和镜像仍然可见,说明迁移成功。

总结

以上步骤介绍了如何安全地迁移 Docker 目录到新的存储路径,并使用符号链接来保持 Docker 的默认路径不变。这种方法适用于 Docker 运行在 Linux 服务器上的场景,能够有效解决存储空间不足的问题。

相关推荐
DarkAthena9 小时前
wslc ps 卡死的排查:一次「停容器不停 VM」引发的连环故障
docker
小沈同学呀10 小时前
【Agent开发第十五期】部署上线:把 Alex 搬进浏览器,15 期全栈串联收官
docker·agent·从零搭建ai助手
lwx91485210 小时前
Docker-安装SSH服务
docker·容器·ssh
时间售卖铺15 小时前
Docker实战:一键部署轻量级容器
运维·docker·云原生
tedcloud12319 小时前
Docker Compose 部署 Uptime Kuma:配置 HTTPS、QQ 邮箱告警与数据备份
服务器·网络协议·ui·docker·容器·https·开源
syntaxsage19 小时前
Dive:Docker 镜像层可视化分析工具
运维·其他·docker·容器
java_logo19 小时前
Docker 部署 Samba:轻松搭建局域网文件共享
运维·docker·容器·文件共享·samba·smb·轩辕镜像
todoitbo1 天前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
是枚小菜鸡儿吖2 天前
Home Assistant跨品牌智能家居教程:Docker部署、米家接入、vivo桥接与远程访问
docker·容器·智能家居
螺蛳粉 螺蛳粉2 天前
第 02 篇:镜像分层与 containerd 2.x 实战:SystemdCgroup 与 pause 镜像配置踩坑(底座认知 02)
docker·云原生·容器·kubernetes·etcd·containerd·kube-apiserver