补充说明
skopeo 是一个操作容器镜像的命令行工具,不需要 Docker daemon,也不要求本地有容器运行时。它可以直接与容器镜像仓库(Docker Hub、自建 registry、Quay 等)通信,完成镜像的复制、检查、删除、列表等操作,常用于脚本化和 CI/CD 流程。
skopeo 的典型能力:skopeo inspect 查看远端镜像的元数据(无需拉取整个镜像);skopeo copy 在仓库之间复制镜像(支持跨平台、跨仓库,甚至直接复制 OCI/镜像格式);skopeo list-tags 列出仓库中镜像的 tags;skopeo delete 删除镜像(需仓库权限)。它基于 containers/image 库,与 Podman/Buildah 同属 Red Hat 的容器工具链。
典型场景:CI 中把镜像从一个 registry 同步到另一个、审计远端镜像的配置与层信息、在无 Docker 的服务器上检查镜像。注意:skopeo copy 默认会校验并尽量转换格式;操作私有仓库需通过环境变量或 --creds 提供认证,skopeo inspect 对部分私有仓库需正确配置认证信息。
语法
skopeo [命令] [选项] [镜像引用]
选项
inspect # 显示镜像元数据
copy # 在镜像仓库/本地之间复制镜像
list-tags # 列出镜像仓库中的 tags
delete # 删除镜像(需仓库写权限)
sync # 在仓库之间同步镜像
login/logout # 登录/登出容器镜像仓库
实例
# 查看远端镜像的元数据(无需拉取镜像)
skopeo inspect docker://docker.io/library/nginx:latest
# 在仓库之间复制镜像(从 Docker Hub 复制到自建仓库)
skopeo copy \
docker://docker.io/library/nginx:latest \
docker://registry.example.com/mirror/nginx:latest
# 连镜像层一起复制(--all 同时复制多架构 manifest)
skopeo copy --all \
docker://docker.io/library/nginx:latest \
docker://registry.example.com/mirror/nginx:latest
# 使用凭证操作私有仓库
skopeo inspect --creds user:password docker://registry.example.com/myapp:v1
# 列出仓库中某镜像的所有 tags
skopeo list-tags docker://registry.example.com/myapp
# 删除镜像(谨慎,不可恢复;需仓库删除权限)
skopeo delete docker://registry.example.com/myapp:v1