skopeo 基本命令

系列文章目录

skopeo工具安装部署
skopeo 基本命令
基于 skopeo(containers库) 二次开发 Go 代码示例

一、skopeo 是什么?

skopeo是一个命令行工具,可以对容器镜像和镜像仓库执行各种操作。
skopeo不要求用户以root身份运行来执行其大部分操作。
skopeo不需要运行守护进程来执行其操作。
skopeo可以使用OCI镜像以及原始的Docker v2镜像。

二、skopeo 基本命令

基本命令

./skopeo --help # 子命令可采用如下命令 skopeo [command] --help 命令

Usage:
 skopeo [flags]
 skopeo [command]


Available Commands:
 copy # 复制一个镜像从 A 到 B,这里的 A 和 B 可以为本地 docker 镜像或者 registry 上的镜像;
 delete # 删除一个镜像 tag,可以是本地 docker 镜像或者 registry 上的镜像;
 help # 帮助查看
 inspect # 查看一个镜像的 manifest 或者 image config 详细信息;
 list-tags # 列出存储库名称指定的镜像的tag
 login # 登陆某个镜像仓库,类似于 docker login 命令
 logout # 退出某个已认证的镜像仓库, 类似于 docker logout 命令
 manifest-digest # 计算文件的清单摘要是一个sha256sum 值
 standalone-sign # 使用本地文件创建签名
 standalone-verify # 验证本地文件的签名
 sync # 将一个或多个图像从一个位置同步到另一个位置 (该功能非常Nice)


Flags:
 --command-timeout duration # 命令超时时间(单位秒)
 --debug # 启用debug模式
 --insecure-policy # 在不进行任何策略检查的情况下运行该工具(如果没有配置 policy 的话需要加上该参数)
 --override-arch ARCH # 处理镜像时覆盖客户端 CPU 体系架构,如在 amd64 的机器上用 skopeo 处理 arm64 的镜像
 --override-os OS # 处理镜像时覆盖客户端 OS
 --override-variant VARIANT # 处理镜像时使用VARIANT而不是运行架构变量
 --policy string # 信任策略文件的路径 (为镜像配置安全策略情况下使用)
 --registries.d DIR # 在目录中使用Registry配置文件(例如,用于容器签名存储)
 --tmpdir string # 用于存储临时文件的目录


-h, --help help for skopeo
-v, --version Version for Skopeo

查看版本

skopeo --version

输出结果:skopeo version 1.4.1

登录

skopeo login iregistry.baidu-int.com -u zhaikaifang -p xxxx

输出结果:Login Succeeded!

复制镜像

从 registry 复制镜像到本地

在 registry.xxxx.com 镜像仓库中,将 registry.xxxx/library/busybox:1.31.1 复制到本地 busybox:1.31.1 目录下

skopeo copy --insecure-policy --src-tls-verify=false --dest-tls-verify=false docker://registry.xxxx.com/library/busybox:1.31.1 dir:busybox:1.31.1

镜像仓库里的镜像,需要增加 docker: 前缀
本地目录,需要增加 dir: 前缀

从本地复制镜像到 registry

skopeo copy --insecure-policy --src-tls-verify=false --dest-tls-verify=false dir:busybox:1.31.1 docker://registry.xxxx.com/library/busybox:1.31.1-amd64

镜像仓库里的镜像,需要增加 docker: 前缀
本地目录,需要增加 dir: 前缀

注意:如果未登录,会报错 401

修改 tag

skopeo copy --insecure-policy --src-tls-verify=false --dest-tls-verify=false docker://registry.xxxx.com/library/busybox:1.31.1 docker://registry.xxxx.com/library/busybox:1.31.1-v2

查看多架构镜像

skopeo --tls-verify=false inspect --raw docker://registry.xxxx.com/library/busybox:1.31.1 | jq '.manifests'

如果是多架构镜像,则会输出 manifests 信息,示例如下:
[
  {
    "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
    "digest": "sha256:de2dc12da2ade2c1d07237fcd0ee5f339d1426a56d738a3cf67f4387fa6422da",
    "size": 1781,
    "platform": {
      "architecture": "arm64",
      "os": "linux"
    }
  },
  {
    "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
    "digest": "sha256:bccc6e5be1b82972f5bca4b30aa4d377f0d9295159bdb557e93699eb3d218cea",
    "size": 1781,
    "platform": {
      "architecture": "amd64",
      "os": "linux"
    }
  }
]

如果不是多架构镜像,则会输出 null

删除镜像

skopeo --tls-verify=false delete docker://registry.xxxx.com/library/busybox:1.31.1-amd64

什么都没有输出表示删除成功

注:删除操作,会将其它tag不同但imageID相同的镜像都给删除,谨慎使用!!!

后续待补充


总结

skopeo 是一个不错的 docker 镜像管理工具,其可以高效的管理镜像仓库里的镜像,建议使用。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

k8s-open

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值