容器迁移:将 Docker 容器镜像导出为 OCI 格式,导入到 Harbor 私有仓库的步骤
通过此流程,可实现容器镜像的标准化迁移,确保镜像格式符合开放容器标准(OCI),增强跨平台兼容性。
·
容器镜像迁移至 Harbor 私有仓库(OCI 格式)
步骤 1:导出 Docker 镜像为 OCI 格式
# 查看本地镜像列表
docker images
# 导出为 OCI 格式(需 Docker 20.10+)
docker save --format oci -o image.oci <镜像名>:<标签>
# 验证导出文件
file image.oci # 应显示 "OCI Image"
步骤 2:准备 Harbor 访问凭证
# 创建认证配置文件
mkdir -p ~/.docker
echo '{"auths":{"<Harbor地址>":{"auth":"$(echo -n '<用户名>:<密码>' | base64)"}}}' > ~/.docker/config.json
步骤 3:导入 OCI 镜像到 Harbor
# 使用 skopeo 工具导入(推荐)
skopeo copy --dest-tls-verify=false \
oci-archive:image.oci \
docker://<Harbor地址>/<项目名>/<镜像名>:<标签>
# 或使用 Docker 客户端导入
docker load -i image.oci
docker tag <镜像ID> <Harbor地址>/<项目名>/<镜像名>:<标签>
docker push <Harbor地址>/<项目名>/<镜像名>:<标签>
步骤 4:验证 Harbor 仓库
- 登录 Harbor Web 控制台
- 进入目标项目
- 检查镜像是否存在
- 测试拉取镜像:
docker pull <Harbor地址>/<项目名>/<镜像名>:<标签>
关键参数说明
| 参数 | 示例值 | 说明 |
|---|---|---|
<镜像名>:<标签> |
nginx:1.23 |
源镜像标识 |
<Harbor地址> |
harbor.example.com |
Harbor 服务域名/IP |
<项目名> |
my-project |
Harbor 中的项目名称 |
--dest-tls-verify=false |
当使用自签名证书时需添加 |
注意事项
- 确保 Harbor 已启用 OCI 支持(默认开启)
- 若使用 HTTP 协议,需在 Docker 配置中添加
"insecure-registries": ["<Harbor地址>"] - 镜像大小超过 2GB 时建议分块传输:
split -b 2000M image.oci image_part_
- 使用
skopeo inspect docker://<地址>验证镜像元数据
通过此流程,可实现容器镜像的标准化迁移,确保镜像格式符合开放容器标准(OCI),增强跨平台兼容性。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)