尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
skopeo镜像搬运工 —— 筑梦之路
安装skopeo# 下载 https://github.com/lework/skopeo-binary/releases # 上传文件到虚拟机改名后安装 mv skopeo-linux-amd64 skopeo mv skopeo /usr/bin/ chmod x /usr/bin/skopeo # 测试是否安装 skopeo --version镜像拉取登录 skopeo login --tls-verifyfalse http://192.168.100.128 拉取镜像到128机器harbor skopeo copy --insecure-policy \ --src-tls-verifyfalse \ --dest-tls-verifyfalse \ docker://quay.io/skopeo/stable:latest \ docker://192.168.100.128/images-project/skopeo:latest 从docker.io拉取镜像到128机器harbor仓库 skopeo copy --insecure-policy --src-tls-verifyfalse \ --dest-tls-verifyfalse \ docker://docker.io/nginx:latest \ docker://192.168.100.128/images-project/nginx:latest # 私有仓库之间同步 拉取128机器的harbor镜像实现镜像仓库之间同步 skopeo copy --insecure-policy \ --src-tls-verifyfalse --dest-tls-verifyfalse \ docker://192.168.100.128/images-project/mysql:5.7 \ docker://192.168.100.129/images-bak/mysql:test01 # 仓库镜像拷贝到本地目录 mkdir skopeo-test01 skopeo copy docker://docker.io/library/nginx:latest \ dir:skopeo-test01 ------------------ 查看目录tree tree skopeo-test01 # 将镜像保存OCI格式 install -d images_OCI skopeo copy docker://docker.io/library/nginx:latest oci:images_OCI tree images_OCI # 将本地镜像存储到harbor 替代docker push功能将镜像从Docker本地存储push到harbor中 skopeo copy --insecure-policy --dest-tls-verifyfalse \ docker-daemon:rcoelhorj/go-helloworld:latest \ docker://192.168.80.28/lyc-images-project/go-helloworld:latest skopeo copy --insecure-policy --dest-tls-verifyfalse \ docker-daemon:gcr.io/kubebuilder/kube-rbac-proxy:v0.13.0 \ docker://192.168.80.28/lyc-images-project/kube-rbac-proxy:v0.13.0镜像同步Skopeo sync可以在容器仓库和本地目录之间同步镜像# 远程镜像同步到本地 skopeo sync --src docker --dest dir docker.io/library/httpd:latest /root/skopeo-sync/httpd:latest # 查看公共仓库中的busybox所有版本 skopeo list-tags docker://docker.io/library/busybox # 将同类镜像拉取到本地 skopeo sync --src docker --dest dir docker.io/library/httpd /root/skopeo-sync/httpd # 将本地镜像同步到仓库中 skopeo sync --insecure-policy --dest-tls-verifyfalse --src dir --dest docker /root/skopeo-sync/httpd:latest 192.168.80.29/lyc-images-project/ # 两个仓库之间同步 skopeo sync --insecure-policy --src-tls-verifyfalse \ --dest-tls-verifyfalse --src docker --dest \ docker docker.io/library/busybox \ 192.168.10.152/images-bak/ # 以配置文件形式同步 vim skopeo-sync.yml ------------------------ docker.io: tls-verify: false images: httpd: - latest quay.io: tls-verify: false images: coreos/etcd: - latest ------------------------ 执行sync同步 skopeo sync --insecure-policy \ --src-tls-verifyfalse --dest-tls-verifyfalse \ --src yaml --dest docker skopeo-sync.yml 192.168.100.129/images-bak/删除镜像使用skopeo delete命令我们可以删除镜像Tag注意此处仅仅只是通过registry AP1来删除镜像的tag即删除了tag 对 manifests文件的引用并非真正将镜像删除掉如果想要删除镜像的 layer 还是需要通过 registry Gc 的方式。# 删除镜像 skopeo delete --tls-verifyfalse \ docker://192.168.100.129/images-bak/mysql:test01实践案例给你一个镜像列表如https://github.com/kubesphere/ks-installer/releases/download/v3.4.1/images-list.txt如何将它快速地从一个 Registry同步到另一个Registry 中呢cat images-sync.sh EOF #!/bin/bash GREEN_COL\\033[32;1m RED_COL\\033[1;31m NORMAL_COL\\033[0;39m SOURCE_REGISTRY$1 TARGET_REGISTRY$2 : ${IMAGES_LIST_FILE:images-list.txt} : ${TARGET_REGISTRY:hub.k8s.li} : ${SOURCE_REGISTRY:docker.io} BLOBS_PATHdocker/registry/v2/blobs/sha256 REPO_PATHdocker/registry/v2/repositories set -eo pipefail CURRENT_NUM0 ALL_IMAGES$(sed -n /#/d;s/:/:/p ${IMAGES_LIST_FILE} | sort -u) TOTAL_NUMS$(echo ${ALL_IMAGES} | wc -l) skopeo_copy() { if skopeo copy --insecure-policy --src-tls-verifyfalse --dest-tls-verifyfalse \ --override-arch amd64 --override-os linux -q docker://$1 docker://$2; then echo -e $GREEN_COL Progress: ${CURRENT_NUM}/${TOTAL_NUMS} sync $1 to $2 successful $NORMAL_COL else echo -e $RED_COL Progress: ${CURRENT_NUM}/${TOTAL_NUMS} sync $1 to $2 failed $NORMAL_COL exit 2 fi } for image in ${ALL_IMAGES}; do let CURRENT_NUM${CURRENT_NUM}1 skopeo_copy ${SOURCE_REGISTRY}/${image} ${TARGET_REGISTRY}/${image} done EOF --------------------------------------------------------------- # 转换文件格式 yum install dos2unix dos2unix images-sync.sh chmod x images-sync.sh # 运行脚本示例 bash images-sync.sh docker.io 192.168.100.129/images-bak
RELATED

相关推荐

深入解析 DeepFM:在 D2L 中融合因子分解机与深度神经网络实现点击率预测

深入解析 DeepFM:在 D2L 中融合因子分解机与深度神经网络实现点击率预测

文档教程人工智能深度学习NLP计算机视觉强化学习 【免费下载链接】d2l-en Interactive deep learning book with multi-framework code, math, and discussions. Adopted at 500 universities from 70 countries including Stanford, MIT, Harvard, and Cambridge. 项目地址&am…

📅 2026/10/3 8:11:48
Tremor Drawer 组件深度解析:基于 Radix Dialog 的侧滑抽屉实现与 z-index、tremor-id 演进

Tremor Drawer 组件深度解析:基于 Radix Dialog 的侧滑抽屉实现与 z-index、tremor-id 演进

UI组件图表库前端 【免费下载链接】tremor React components to build charts and dashboards 项目地址: https://gitcode.com/gh_mirrors/tr/tremor 点击查看 免费下载 Tremor 是一套用于构建图表与仪表盘的 React 组件库(当前仓库即 tremor-raw 源码&…

📅 2026/10/3 8:11:48
如何 30 分钟点亮 Sunshine 游戏串流:Moonlight 一次连上

如何 30 分钟点亮 Sunshine 游戏串流:Moonlight 一次连上

如何 30 分钟点亮 Sunshine 游戏串流:Moonlight 一次连上 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 电视屏幕亮起游戏 PC 的画面,声音跟着出来&#x…

📅 2026/10/3 8:11:48
MORE NEWS

更多资讯

📰

MySQL IN查询大数据量优化:5种可落地方案与排障指南

MySQL的IN查询一遇到大数据量就容易让人头大,这个困境我太熟悉了。业务方丢过来一个任务:这有一份名单,几千个ID,帮我查一下这些ID对应的订单都是什么状态。你不能跟业务说"你少给点",你也不能假装没看见慢S…

📰

MySQL日志体系与排障实战:从错误日志到binlog的深度解析

我最早被MySQL日志折腾到凌晨三点,是因为一次线上磁盘告警。那天深夜,错误日志、binlog、慢查询日志全在疯狂写入,数据目录直接把根分区撑爆,数据库瞬间进入只读状态。那会儿我才意识到,平时不起眼的日志文件&#xff…

📰

Docker 启动 MySQL 实战:从环境准备到备份恢复踩坑指南

最近被不少朋友问到“用docker启动mysql步骤”到底怎么走,其实我在本地环境和生产环境里用 Docker 跑 MySQL 已经三年多了,踩过的坑确实不少。很多人的困惑点其实不是 Docker 本身,而是端口、数据卷、权限、SSL 这些概念和数据习惯之间对不上…

📰

Habitat-baselines v0.1.7 环境搭建与 PointNav 训练避坑指南

最近把 Habitat-baselines v0.1.7 从头到尾完整跑通了一遍,整个过程可以说是“版本锁死、依赖难装、坑点密集”,网上能找到的教程要么停留在更早的版本,要么直接跳到新版 API 完全对不上。如果你也是因为复现论文、跟课程项目或者导师指定版本…

📰

从零设计编程语言:词法分析、语法分析与解释器实现指南

设计一门编程语言,这个话题乍一听像是只在论文和编译器教科书里才会出现的事,但说实话,它离我们并不远。你每天写的SQL、正则表达式、甚至配置文件里的DSL,本质上都是“门小型编程语言”。我自己从零折腾过解释器,也维…

📰

基于Python的二维码识别系统源码数据库:从图像预处理到批量入库的完整实现

简介:这份资源是面向高校计算机相关专业学生与Python Web开发初学者的毕业设计级项目源码包,主题为基于Python与Django框架的二维码识别系统,可用于课程设计参考、全栈开发练手或毕设选题落地。压缩包共732个文件,约16.84MB&#…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬