大家好,今天给大家带来一个我写的实用的GitHub项目:一键将 DockerHub 镜像同步到 GitHub 私有仓库,不仅可以解决拉取镜像慢、被封禁,甚至镜像被作者撤回的问题,还能免费白嫖 GitHub 的容器服务。更棒的是,配合南京大学的开源镜像站,让你的镜像下载速度在国内也能“起飞”。
为什么要搬运 Docker 镜像到 GitHub?
-
防止镜像撤回或封禁:如果你遇到过镜像作者撤回或删库走人,项目无法继续下去的情况,那么将镜像同步到 GitHub 的私有仓库,可以让你完全掌控自己的镜像。即使原作者删了,你自己的私有仓库里依然有备份。
-
免费白嫖 GitHub 容器服务:GitHub 每月提供 2000 分钟的免费私有仓库运行时间,每天可以用 半小时左右,满足日常使用已经足够。如果需要更多时间,可以将仓库设置为公有,公有仓库操作不计时,使用起来更灵活。
-
比CF Worker反代更稳更安全:相比CF Worker反代,GitHub存储镜像稳定、安全、无钓鱼风险,再也不用担心被Netcraft举报,所有镜像存储在自己的私有仓库中,安全放心。
-
比国内云服务更稳定可靠:有些人可能会选择国内的云服务,但国内平台的政策变化比较频繁,数据可靠性堪忧。GitHub 作为全球领先的开源平台,稳定且安全,不会轻易丢失数据。
-
镜像可以随意改名:同步到 GitHub 后,你还可以自由命名镜像,方便管理和分享,展示时显得有逼格。
配合南京大学镜像站,加速 GHCR.IO 镜像拉取
为了加速国内拉取 GHCR.IO 镜像的速度,大家可以使用 南京大学开源镜像站。南京大学提供了国内加速服务,让你从 GitHub Container Registry (GHCR.IO) 拉取镜像时更加顺畅,解决国内访问慢的问题。
使用方法很简单:
将原本的 ghcr.io
替换为 ghcr.nju.edu.cn
。例如:
docker pull ghcr.nju.edu.cn/<username>/<repository>:<tag>
这样你就可以加速从 GHCR.IO 拉取镜像,特别是在国内环境下,下载速度提升明显。
项目地址
完整的操作脚本已经准备好,大家可以访问以下链接查看项目:
一键导入项目,轻松上手
为了让大家更方便地使用,只需几步操作就可以将项目导入到你的 GitHub 仓库:
-
点击这个链接进入 GitHub 的导入页面:
Sign in to GitHub · GitHub -
在页面的 “Your old repository’s clone URL” 一栏中,手动填入项目地址:
https://github.com/foss-android/dockerhub2ghcr.io.git
- 填写你自定义的GitHub仓库名称,点击 “Begin import” 开始导入。
几分钟后,项目就会被完整导入到你的 GitHub 仓库中,然后你就可以愉快的玩耍了。
小提醒
要注意:如果你 Fork 了这个项目,GitHub Actions 在 Fork 分支上运行时,使用的时间会计入你的免费时间配额。为了避免浪费时间或引发风控,建议大家直接用Git 克隆的方式导入的方式,而不是 Fork。
总结
这个项目可以让你轻松将 DockerHub 镜像同步到 GitHub,避免被撤回或封禁,还可以享受 GitHub 的免费容器服务。配合南京大学的镜像站使用,下载速度在国内也能显著提升。如果你还在用国内云服务来存储镜像,建议尽早转存到GitHub,确保数据的稳定和安全。
最后强调
有任何问题或建议,欢迎在评论区讨论!