Skopeo
介绍
Skopeo
是一个用于在容器镜像仓库之间复制和管理镜像的工具。它支持多种镜像仓库。Skopeo
可以在不需要本地Docker
守护进程的情况下操作镜像,适用于镜像的复制、验证和删除等任务
认证
在Linux
操作系统,以containerd
为容器运行时的情况下,Skopeo
认证信息通常存储在 /run/user/UID/containers/auth.json
文件中,其中 UID
是当前用户的用户 ID ,执行skopeo login xxx
命令
这个相对于其他工具的认证信息存储位置有点特殊,可以在 源码 看到其定义
{
"auths": {
"hub.ssgeek.com": {
"auth": "c3NnZWVrOjEyMzQ1Ngo="
}
}
}
代理
如果使用Skopeo
做镜像转存,需要配置Skopeo
读取的conf文件,Skopeo
基于https://github.com/containers/image项目开发,配置文件格式参考registries.conf
cat > ~/.config/containers/registries.conf.d/registries-dockerio.conf << EOF
[[registry]]
prefix = "docker.io"
location = "docker.io"
[[registry.mirror]]
location = "docker-proxy.ssgeek.com:5000"
insecure = true
EOF
# 使用时添加参数
skopeo --registries.d ~/.config/containers/registries.conf.d copy xxx
使用
转存镜像时要注意镜像的架构和操作系统
# 指定架构和操作系统
skopeo copy docker://quay.io/brancz/kube-rbac-proxy:v0.19.1 docker://hub.ssgeek.com/proxy/kube-rbac-proxy:v0.19.1 --override-arch=amd64 --override-os=linux
# 所有架构和操作系统
skopeo copy docker://quay.io/brancz/kube-rbac-proxy:v0.19.1 docker://hub.ssgeek.com/proxy/kube-rbac-proxy:v0.19.1 --multi-arch all