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

如何从Nexus导出的Manifest与Blob文件构建Docker镜像

从Nexus导出的镜像文件重建Docker镜像

先明确你手里的文件逻辑:每个镜像的子文件夹里存着manifest.json(镜像核心清单)和config.json(镜像配置),blobs文件夹里的SHA命名文件就是镜像的层——本质是tar包,只是Nexus导出时没加后缀。下面分单镜像手动处理和多镜像批量处理两种方式:

单镜像手动重建

  1. 临时目录准备:新建一个临时文件夹,比如/tmp/rebuild-nginx,把目标镜像子文件夹里的config.json、manifest.json复制进去。
  2. 复制对应层文件:打开manifest.json,找到layers数组里的每个digest(格式是sha256:xxxxxx),把blobs文件夹里对应的xxxxxx文件复制到临时目录,并重命名为xxxxxx.tar.gz(Docker认这个后缀)。
  3. 生成repositories文件:在临时目录里新建repositories文件,内容替换成你的镜像名和标签,比如:
    {
      "nginx": {
        "1.24": ""
      }
    }
    
  4. 打包并导入:进入临时目录,打包所有文件,再用docker load导入:
    cd /tmp/rebuild-nginx
    tar -cvf nginx-1.24.tar ./*
    docker load -i nginx-1.24.tar
    
    完成后用docker images就能看到导入的镜像了。

多镜像批量处理(脚本方式)

如果有一堆镜像要处理,写个bash脚本自动搞定(需要先装jq用来解析JSON,apt/yum install jq就行):

#!/bin/bash

# 替换成你的实际路径
BLOBS_PATH="./blobs"
IMAGES_ROOT="./image-folders"

# 遍历每个镜像文件夹
for img_dir in "$IMAGES_ROOT"/*; do
    [ -d "$img_dir" ] || continue
    img_name=$(basename "$img_dir")
    tmp_dir="/tmp/rebuild-$img_name"
    mkdir -p "$tmp_dir"

    # 复制配置和清单
    cp "$img_dir"/config.json "$img_dir"/manifest.json "$tmp_dir"/

    # 批量复制对应层文件
    jq -r '.layers[].digest' "$img_dir"/manifest.json | while read digest; do
        blob_file="${digest#sha256:}"
        cp "$BLOBS_PATH"/"$blob_file" "$tmp_dir"/"$blob_file".tar.gz
    done

    # 生成repositories文件(默认用文件夹名做镜像名,标签设为latest,可自行修改)
    cat > "$tmp_dir"/repositories <<- EOF
{
  "$img_name": {
    "latest": ""
  }
}
EOF

    # 打包导入
    tar -cvf "$tmp_dir"/"$img_name".tar -C "$tmp_dir" .
    docker load -i "$tmp_dir"/"$img_name".tar

    # 清理临时文件
    rm -rf "$tmp_dir"
done

把脚本保存为rebuild-images.sh,给执行权限chmod +x rebuild-images.sh,直接运行就行。

注意事项

  • 如果你的镜像是OCI格式(Nexus导出的大多是Docker V2格式),层的mediaType可能不同,这时候不用改后缀,直接复制原文件就行,docker load能识别。
  • 导入后一定要用docker run测试下镜像能不能正常启动,避免层文件或清单有问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:59:51