You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Docker镜像转换为旧版清单格式并推送至私有镜像仓库

临时过渡方案:将Ubuntu OCI格式镜像转换为Docker旧版清单格式并推送至私有仓库

背景

自2023年2月起,Ubuntu 18.04及以上版本的官方维护镜像已切换为OCI格式清单(application/vnd.oci.image.index.v1+json),但部分遗留系统仅支持旧版Docker清单格式(application/vnd.docker.distribution.manifest.list.v2+json),导致无法拉取最新补丁镜像。以下是临时转换格式并推送至私有仓库的权宜方案,用于过渡至遗留系统完成更新。

前提

已本地拉取ubuntu:20.04镜像


步骤1:提取并修改镜像清单

  1. 执行命令获取当前镜像的清单并保存到本地文件:
docker manifest inspect ubuntu:20.04 > manifest.json
  1. 编辑manifest.json文件,修改两处关键mediaType字段:
    • 顶层mediaType:将application/vnd.oci.image.index.v1+json替换为application/vnd.docker.distribution.manifest.list.v2+json
    • 每个子manifest条目里的mediaType:将application/vnd.oci.image.manifest.v1+json替换为application/vnd.docker.distribution.manifest.v2+json

步骤2:推送修改后的清单至私有仓库

  1. 给本地镜像添加私有仓库标签(替换<私有仓库地址>为实际仓库地址,比如registry.example.com):
docker tag ubuntu:20.04 <私有仓库地址>/ubuntu:20.04-old-format
  1. 推送修改后的清单到私有仓库:
docker manifest push --purge <私有仓库地址>/ubuntu:20.04-old-format manifest.json

注:--purge参数用于清理本地缓存的旧清单,确保推送的是修改后的版本

步骤3:验证转换结果

推送完成后,检查私有仓库中的清单格式是否符合要求:

docker manifest inspect <私有仓库地址>/ubuntu:20.04-old-format

确认输出的顶层mediaType为application/vnd.docker.distribution.manifest.list.v2+json,且子清单的mediaType均为application/vnd.docker.distribution.manifest.v2+json即可。


内容的提问来源于stack exchange,提问作者Chase

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 19:17:33