我们是否有任何选项或方式可以使用wget或curl下载Docker镜像。 我的Docker镜像存储在Jfrog Artifactory中。
首先,任何针对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命令以获取该层,如这里所解释的。
我在寻找如何在GitLab上实现同样的功能时,发现了这个答案。我修改了建议的Moby Contrib脚本,以便在GitLab实例中实现同样的功能。
chmod +x download-gitlab-frozen-docker-image.sh
)./download-gitlab-frozen-docker-image.sh <FOLDER_NAME> <DOCKER_URL>
其中 FOLDER_NAME
是存储冻结的 Docker 镜像的文件夹,DOCKER_URL
是直接从 GitLab 容器注册表中获取的 URL。tar -cC '<FOLDER_NAME>' . | docker load