是否可以直接从 Artifactory 加载和保存 Docker 图像?
Is it possible to load and save Docker images directly from Artifactory?
我有两个环境 X 和 Y,它们没有以任何方式连接。环境 Y 是气隙的。
发布流程包括以下步骤:
- 运行
docker pull
所有发布的 Docker 图片。图片取自 Artifactory X。
- 从所有图像中重新标记和删除存储库前缀。
- 运行
docker save
所有发布的 Docker 图片。这可能会导致一个或多个 tar.gz 图像包存储在外部驱动器上。
部署过程包括以下步骤:
- 运行
docker load
用于外部驱动器上的所有图像包。
- 重新标记所有图像并添加新的存储库前缀。
- 运行
docker push
所有图像。图像被推送到 Artifactory Y。
我想知道是否可以通过直接从 Artifactory X 获取 Docker 图像并将其存储为文件而不需要 Docker 守护程序来简化此过程,并且 - 再次没有 Docker 守护进程 - 直接将 Docker 图像文件上传到 Artifactory Y?
一个可行的解决方案是使用 skopeo,一种用于处理远程图像注册表的 CLI 工具。
X环境下的镜像直接存盘,命令如下:
skopeo copy \
docker://docker.artifactory-x.example.com/busybox:latest \
docker-archive:./busybox:latest.tar
环境Y的图片文件直接上传到Artifactory,命令如下:
skopeo copy \
--dest-creds myusername:mypassword \
docker-archive:./busybox:latest.tar \
docker://docker.artifactory-y.example.com/busybox:latest
无需显式重新标记图像即可更改存储库前缀。
我有两个环境 X 和 Y,它们没有以任何方式连接。环境 Y 是气隙的。
发布流程包括以下步骤:
- 运行
docker pull
所有发布的 Docker 图片。图片取自 Artifactory X。 - 从所有图像中重新标记和删除存储库前缀。
- 运行
docker save
所有发布的 Docker 图片。这可能会导致一个或多个 tar.gz 图像包存储在外部驱动器上。
部署过程包括以下步骤:
- 运行
docker load
用于外部驱动器上的所有图像包。 - 重新标记所有图像并添加新的存储库前缀。
- 运行
docker push
所有图像。图像被推送到 Artifactory Y。
我想知道是否可以通过直接从 Artifactory X 获取 Docker 图像并将其存储为文件而不需要 Docker 守护程序来简化此过程,并且 - 再次没有 Docker 守护进程 - 直接将 Docker 图像文件上传到 Artifactory Y?
一个可行的解决方案是使用 skopeo,一种用于处理远程图像注册表的 CLI 工具。
X环境下的镜像直接存盘,命令如下:
skopeo copy \
docker://docker.artifactory-x.example.com/busybox:latest \
docker-archive:./busybox:latest.tar
环境Y的图片文件直接上传到Artifactory,命令如下:
skopeo copy \
--dest-creds myusername:mypassword \
docker-archive:./busybox:latest.tar \
docker://docker.artifactory-y.example.com/busybox:latest
无需显式重新标记图像即可更改存储库前缀。