原URL: https://rhelblog.redhat.com/2017/05/11/skopeo-copy-to-the-rescue/
我们在项目中经常会遇到以下场景:
开发包会先上传到内部registry中,等测试完成后,在传到生产的registry中
通常我们的做法为:
docker pull internal.registry/myimage:latest
docker tag internal.registry/myimage:latest production.registry/myimage:v1.0
docker push production.registry/myimage:v1.0
要执行成功上述命令,要求我们必须满足以下条件:
- 已安装docker
- 已启动docker守护进程
这种做法可以达到我们的目的,但是开销有点大。
试想我们仅仅想从一个registry复制一个image到另一个registry中去,我们是否真的需要一个完整的docker守护进程。
“skopeo copy”解决了一个问题。
Skopeo是一个和远端registry进行交互,协同工作的命令行工具。
一些非常简单的指令例如'skopeo copy'即可实现类似于在不同registry间copy这样的操作,而不依赖于docker进程。
skopeo copy docker://internal.registry/myimage:latest /
docker://production.registry/myimage:v1.0
如果你的内部registry和生产registry都需要先认证才能执行相应操作,则可以尝试以下命令: