我正在尝试在Artifactory实例之间转移容器。表演:
jfrog rt dl my-images-repo repository/ --url="http://localhost/artifactory" --user=user --password=pass --recursive
然后:
jfrog rt u repository/ new-images-repo --url="http://localhost/artifactory" --user=user --password=pass --flat=false
最后:
docker pull new-images-repo/my-image
产量: 缺少签名密钥
但是,通过GUI进行相同的过程,然后导出文件夹,然后重新导入,似乎可以很好地转移容器。对此进行调查,当我运行这些jfrog rt u / dl命令时,似乎没有下载/上传容器的“属性”文件。
有人有主意吗?
谢谢
答案 0 :(得分:0)
如果您拥有Artifactory Pro(或SaaS,Enterprise,E +),则可以使用Repository Replication来实现将图像Docker从一个实例传输到另一个实例
另一个问题是我们正在使用jfrog rt dl
和jfrog rt u
,它们都是通用的上载/下载命令,也许可以用于其他回购类型。
Docker具有特定的API,因此您将需要使用Docker客户端或JFrog CLI的推/拉。
通常,您要做的是:
docker pull SOURCE_IMAGE[:TAG]
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker push TARGET_IMAGE[:TAG]
最后还有system/repository export/import可以满足您的需求。
答案 1 :(得分:0)
如果您没有带复制功能的Artifactory pro,您还有2种选择。
在目标Artifactory上,您可以使用将连接到源Artifactory存储库的docker远程存储库。 通过在此远程存储库上运行docker pull命令,您将填充目标Artifactory的本地缓存,使其在本地可用。
可选地,您随后可以运行提升REST API端点,以将映像从缓存移至本地存储库。 https://www.jfrog.com/confluence/display/JFROG/Artifactory+REST+API#ArtifactoryRESTAPI-PromoteDockerImage
第二种方法,如果要使用cli,则将其用作docker客户端的包装(与Angellio方法非常相似,但利用cli进行身份验证)
命令应该是
jfrog rt dpl ...
docker tag
jfrog rt dp ...
请注意,主要区别之一是跳数,第一种方法是图像只有一个“运动”,可能要结合您想要的图像数量/体积一起考虑转移,以及您希望如何进行转移。