skopeo简单用法

从远程 registry 拉取并保存为 tar 文件

skopeo copy \
  docker://docker.io/library/nginx:alpine \
  docker-archive://nginx-alpine.tar

把镜像推到另一个 registry

skopeo copy \
  docker://docker.io/library/nginx:alpine \
  docker://myregistry.com/mynginx:latest

查看远程镜像信息(不下载)

skopeo inspect docker://docker.io/library/nginx:alpine

查看镜像的 manifest(判断是否多架构)

skopeo inspect --raw docker://docker.io/library/nginx:alpine

从 tar 包加载回 registry 或本地引擎

skopeo copy \
  docker-archive://nginx-alpine.tar \
  docker-daemon:nginx:alpine

指定架构复制(比如只拉 amd64)

skopeo copy \
  --override-arch=amd64 \
  --override-os=linux \
  docker://docker.io/library/nginx:alpine \
  docker-archive://nginx-alpine-amd64.tar

登录私有仓库

skopeo login registry.example.com

删除远程镜像(某些 registry 支持)

skopeo delete docker://myregistry.com/myimage:tag

支持的目标类型(Transport)

类型 示例 说明
docker:// docker://docker.io/nginx 远程镜像仓库
docker-archive:// docker-archive://nginx.tar 保存为 tar 文件
docker-daemon: docker-daemon:nginx:latest 推送进本地 Docker/Podman
dir: dir:/tmp/myimage 保存为目录(OCI 格式)

常见问题解决

错误:no policy.json file found

  1. 运行时加 --insecure-policy(仅测试环境):skopeo --insecure-policy copy ...
  2. 创建 C:\Users\你的用户.config\containers\policy.json(Windows)或 ~/.config/containers/policy.json(Linux):
{
  "default": [
    {
      "type": "insecureAcceptAnything"
    }
  ]
}

总结:最常用 3 条命令

目的 命令
查看镜像信息 skopeo inspect docker://image:tag
下载为 tar skopeo copy docker://image:tag docker-archive://file.tar
推送到 registry skopeo copy docker-archive://file.tar docker://registry/image:tag
posted @ 2025-09-02 10:22  31407  阅读(90)  评论(0)    收藏  举报