我们是否有任何选择/方法可以使用wget或curl下载docker镜像。 我的 docker 映像存在于 Jfrog 工件工厂中。
首先,Artifactory 存储库的任何 curl 命令都需要您帐户的 API 密钥。请参阅"不使用 docker 客户端时,如何将 docker 注册表 API 与 Artifactory Docker 存储库一起使用?
您可以使用以下标头:"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实例做同样的事情。
- 下载 download-gitlab-frozen-docker-image.sh
- 将其标记为可执行文件 (
chmod +x download-gitlab-frozen-docker-image.sh
) - 运行脚本:
其中./download-gitlab-frozen-docker-image.sh <FOLDER_NAME> <DOCKER_URL>
FOLDER_NAME
是存储冻结的 Docker 映像的文件夹,DOCKER_URL
是直接来自 GitHubLab 容器注册表的 URL。 - 将冻结的文件夹导入 docker (在您方便/任何将来的日期):
tar -cC '<FOLDER_NAME>' . | docker load