如何使用curl或wget从Artifactory下载Docker镜像?

12

我们是否有任何选项或方式可以使用wget或curl下载Docker镜像。 我的Docker镜像存储在Jfrog Artifactory中。

2个回答

7

首先,任何针对Artifactory仓库的curl命令都需要您账户的API密钥。请参阅"如何在不使用docker客户端时使用Artifactory Docker存储库的docker注册表API?"

您可以使用以下标头:"X-JFrog-Art-Api"并传递用户的API密钥进行身份验证。用户的API密钥可以从Artifactory中的“用户配置文件”页面检索。 Artifactory REST API支持三种形式的身份验证,您可以在docker存储库中使用其中任何一种。

其次,下载镜像并非易事(因为您需要获取所有层)。
您可以尝试调整moby contrib脚本download-frozen-image-v2.sh

或者尝试docker-registry-debug,它将打印一个curl命令以获取该层,如这里所解释的


0

我在寻找如何在GitLab上实现同样的功能时,发现了这个答案。我修改了建议的Moby Contrib脚本,以便在GitLab实例中实现同样的功能。

  1. 下载 download-gitlab-frozen-docker-image.sh
  2. 标记为可执行 (chmod +x download-gitlab-frozen-docker-image.sh)
  3. 运行脚本:
    ./download-gitlab-frozen-docker-image.sh <FOLDER_NAME> <DOCKER_URL>
    
    其中 FOLDER_NAME 是存储冻结的 Docker 镜像的文件夹,DOCKER_URL 是直接从 GitLab 容器注册表中获取的 URL。
  4. 将冻结的文件夹导入到 Docker 中(在您方便的任何未来日期):
    tar -cC '<FOLDER_NAME>' . | docker load
    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接