是否可以直接从Artifactory加载和保存Docker映像?

时间:2019-12-15 11:09:36

标签: docker artifactory docker-registry

我有两个未以任何方式连接的环境X和Y。环境Y具有空气间隙。

存在一个释放过程,该过程包含以下步骤:

  1. 为所有已发布的Docker映像运行docker pull。图片是从Artifactory X提取的。
  2. 从所有图像中标记并剥离存储库前缀。
  3. 为所有已发布的Docker映像运行docker save。这可能会导致一个或多个tar.gz图像包存储在外部驱动器上。

有一个部署过程,包括以下步骤:

  1. 为外部驱动器上的所有图像包运行docker load
  2. 重新标记所有图像并添加新的存储库前缀。
  3. 为所有图像运行docker push。图像被推送到Artifactory Y。

我想知道是否可以通过直接从Artifactory X提取Docker映像并将其存储为文件而不需要Docker守护程序来简化该过程,并且-再次没有Docker守护程序-直接上传Docker映像提交给Artifactory Y?

1 个答案:

答案 0 :(得分:0)

一个可行的解决方案是使用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

无需显式重新标记图像即可更改存储库前缀。