从远程 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
- 运行时加 --insecure-policy(仅测试环境):skopeo --insecure-policy copy ...
- 创建 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 |