差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
| docker:registrymirror [2025/12/25 12:54] – [存储缓存镜像迁移] admin | docker:registrymirror [2025/12/25 13:46] (当前版本) – [存储缓存镜像迁移] admin | ||
|---|---|---|---|
| 行 283: | 行 283: | ||
| * 普通列表项目Registry 的存储索引(registry.db)。 | * 普通列表项目Registry 的存储索引(registry.db)。 | ||
| 这些数据是平台无关、可移植的(只要 Registry 版本一致),复制后新的加速器服务器可直接复用已有缓存,无需重新从 Docker Hub 拉取镜像。 | 这些数据是平台无关、可移植的(只要 Registry 版本一致),复制后新的加速器服务器可直接复用已有缓存,无需重新从 Docker Hub 拉取镜像。 | ||
| + | |||
| + | **查看缓存大小** | ||
| + | |||
| + | ``` | ||
| + | du -sh / | ||
| + | ``` | ||
| **复制 / 迁移的前提条件** | **复制 / 迁移的前提条件** | ||
| 行 336: | 行 342: | ||
| docker-compose ps | docker-compose ps | ||
| ``` | ``` | ||
| + | |||
| + | 6、**验证迁移效果** | ||
| + | |||
| + | 在新服务器的客户端拉取一个原缓存过的镜像(如 nginx: | ||
| + | ``` | ||
| + | docker pull nginx: | ||
| + | ``` | ||
| + | |||
| + | **注意事项(避坑关键)** | ||
| + | |||
| + | 1、**禁止在线复制**:如果不停止原 Registry 就复制 data 目录,可能导致镜像分层文件(blobs)不完整,新服务器启动后出现「镜像拉取失败」「manifest 不存在」等错误; | ||
| + | |||
| + | 2、**版本兼容**: | ||
| + | |||
| + | * 普通列表项目低版本 Registry(如 2.7)的数据可迁移到高版本(如 2.8+),但高版本数据不能回退到低版本; | ||
| + | |||
| + | * 普通列表项目建议所有服务器统一使用 registry: | ||
| + | |||
| + | 3、**路径一致性**: | ||
| + | 新服务器的 docker-compose.yml 中,./ | ||
| + | |||
| + | 4、**清理无效数据**:如果迁移后发现部分镜像无法访问,可执行垃圾回收清理无效数据: | ||
| + | ``` | ||
| + | docker exec docker-registry-mirror registry garbage-collect / | ||
| + | ``` | ||
| + | |||
| + | **总结** | ||
| + | |||
| + | 1、data 目录(缓存镜像的目录)可以复制给其他镜像加速器使用,核心是保证 Registry 版本一致、停止服务后复制、修复目录权限; | ||
| + | |||
| + | 2、迁移后新加速器可直接复用已有缓存,无需重新拉取镜像,大幅节省带宽和时间; | ||
| + | |||
| + | 3、关键步骤:停止原服务 → 打包数据 → 传输 → 解压并修复权限 → 启动新服务。 | ||