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

如何手动将本地构建的Docker镜像上传至Artifactory

手动上传Docker镜像到JFrog Artifactory的方法

由于你无法使用docker push或CI/CD流程,以下是两种手动上传Docker镜像到Artifactory的可行方法:

方法一:通过Artifactory Web UI上传

1. 导出本地镜像为tar归档

用docker save将镜像打包成tar文件:

docker save -o my-image.tar my-image:v1.0.0

替换my-image.tar为自定义归档文件名,my-image:v1.0.0是你本地要上传的镜像名和标签。

2. 在Artifactory UI完成上传

  1. 登录Artifactory控制台,进入你的本地Docker仓库(确认仓库类型为Docker且拥有上传权限)。
  2. 点击页面右上角的Upload按钮。
  3. 在上传配置中:
    • 点击Select Files选择刚才生成的tar文件;
    • 在Target Path中填写镜像在仓库中的路径,格式为<仓库key>/<镜像名>/<标签>(例如你的仓库key是docker-local,则填docker-local/my-image/v1.0.0);
    • 勾选Extract Archive选项,让Artifactory自动解压tar包并解析Docker镜像结构;
  4. 点击Upload完成操作。

3. 验证上传结果

上传完成后,回到仓库界面可看到镜像的manifest.json、layer等文件结构。用docker pull测试拉取:

docker pull <artifactory域名>/<仓库key>/my-image:v1.0.0

方法二:通过Artifactory API上传(命令行方式)

1. 导出并解压镜像(可选)

创建临时目录并解压tar包,方便单独上传每个镜像文件:

mkdir temp-image && docker save my-image:v1.0.0 | tar -C temp-image -xvf -

解压后目录会包含镜像的manifest、layer哈希文件夹等内容。

2. 使用curl上传镜像文件

先在Artifactory个人设置中生成API密钥,然后依次上传必要文件:

  • 上传manifest.json:
curl -u <用户名>:<API密钥> -X PUT "<artifactory地址>/artifactory/<仓库key>/my-image/v1.0.0/manifest.json" -T temp-image/manifest.json
  • 上传每个layer文件(替换<layer哈希值>为实际文件夹名):
curl -u <用户名>:<API密钥> -X PUT "<artifactory地址>/artifactory/<仓库key>/my-image/v1.0.0/<layer哈希值>/layer.tar" -T temp-image/<layer哈希值>/layer.tar

3. 验证上传

同样用docker pull命令测试镜像是否能正常拉取。

注意事项

  • 确保目标仓库是本地Docker仓库,远程仓库通常不支持直接上传本地镜像;
  • 上传路径必须严格符合Docker镜像的层级结构,否则Artifactory无法识别为有效镜像;
  • UI上传时必须勾选Extract Archive,否则仅会上传tar文件,不会解析为镜像。

内容的提问来源于stack exchange,提问作者Andreas H.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:35:25