1 Star 0 Fork 1

wangyanglinux / hub-mirror

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

hub-mirror

使用 docker.io 来提供(但不限于) gcr.io、k8s.gcr.io、quay.io、ghcr.io 等国外镜像加速下载服务

使用

1. 白嫖我的,点个 Star ,直接提交 issues

要求:严格按照模板规范提交,参考: 成功案例失败案例

限制:每次提交最多 11 个镜像地址

我的个人 Docker 账号有每日镜像拉取限额,请勿滥用

2. 自己动手,Fork 本项目,开启 issues 并绑定你自己的 Docker 账号

开启 Settings-Options-Features 中的 Issues 功能

Settings-Secrets 新建 DOCKERHUB_USERNAME(你的 Docker 用户名) 和 DOCKERHUB_TOKEN(你的 Docker 密码) 两个 Secrets

Issues-Labels 添加三个 label :hub-mirrorsuccessfailure

最后在 Actions 里选择 hub-mirror ,在右边 ··· 菜单里选择 Enable Workflow

3. 已有魔法,本地使用

go install github.com/togettoyou/hub-mirror@latest
hub-mirror --username=xxxxxx --password=xxxxxx --content='{ "hub-mirror": ["gcr.io/google-samples/microservices-demo/emailservice:v0.3.5"] }'

教程

教程首发微信公众号:【SuperGopher】,欢迎关注

微信公众号.png

目前常用的 Docker Registry 公开服务有:

  • docker.io :Docker Hub 官方镜像仓库,也是 Docker 默认的仓库

  • gcr.iok8s.gcr.io :谷歌镜像仓库

  • quay.io :Red Hat 镜像仓库

  • ghcr.io :GitHub 镜像仓库

当使用 docker pull 仓库地址/用户名/仓库名:标签 时,会前往对应的仓库地址拉取镜像,标签无声明时默认为 latest, 仓库地址无声明时默认为 docker.io

众所周知的原因,在国内访问这些服务异常的慢,甚至 gcr.ioquay.io 根本无法访问。

解决方案:镜像加速器

针对 Docker Hub ,Docker 官方和国内各大云服务商均提供了 Docker 镜像加速服务。

你只需要简单配置一下(以 Linux 为例):

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["镜像加速器"]
}
EOF

sudo systemctl daemon-reload
sudo service docker restart

便可以通过访问国内镜像加速器来加速 Docker Hub 的镜像下载。

不过这种办法也只能针对 docker.io ,其它的仓库地址并没有真正实际可用的加速器(至少我目前没找到)。

解决方案:用魔法打败魔法

既然无法治本,那治治标还是可以的吧。

若我们使用一台魔法机器从 gcr.ioquay.io 等仓库先把我们无法下载的镜像拉取下来,然后重新上传到 docker.io ,是不是就可以使用 Docker Hub 的镜像加速器下载了。

镜像仓库迁移的功能,我这里采用了 Go Docker SDK ,整体实现也比较简单,参考 main.go

以需要转换的 gcr.io/google-samples/microservices-demo/emailservice:v0.3.5 为例,使用方式:

功能实现了,剩下的就是找台带有魔法的机器了。

GitHub Actions 就是个好选择,我们可以利用提交 issues 来触发镜像仓库迁移的功能。

workflow 的实现参考 hub-mirror.yml

实际的使用效果参考 issues

只要执行最终输出的命令,就可以飞快的使用 Docker Hub 的加速器下载 gcr.ioquay.io 等镜像了。

MIT License Copyright (c) 2022 寻寻觅觅的Gopher Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

下载不可访问镜像上传至 docker 官方仓库 展开 收起
Go
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/rocrunning/hub-mirror.git
git@gitee.com:rocrunning/hub-mirror.git
rocrunning
hub-mirror
hub-mirror
main

搜索帮助