通过Github拉取Docker hub中的镜像

本文参考自技术爬爬虾关于Dockerhub镜像拉取的解决方案,以下是原作者的B站视频页和Github仓库,喜欢的话请支持一下原作者!

Bilibili原视频 Bilibili账号 Github
点我查看 点我查看 点我查看

我们在使用docker pull命令时,即使配置了registry-mirrors,也经常出现无法连接或者链接超时的问题:

要想解决这一问题,我们需要通过Github从Dockerhub拉取镜像,然后再将镜像数据推送到阿里云镜像仓库,由于阿里云镜像仓库位于国内,从阿里云镜像仓库拉取个人镜像速度非常快,以下是相关教程:

一、准备操作

在正式开始之前,我们需要执行如下操作:

1. 开启对Github和Dockerhub的访问。请根据自己电脑操作系统查看对应教程:

Windows macOS
点我查看 点我查看

开启加速后,可以点击下面两个网站:

Github Dockerhub
点我查看 点我查看

2. 登录并注册阿里云、Github,以下是这两个网站的入口和相关说明:

网站入口 说明 参考图片
阿里云 点我查看 可以使用支付宝、淘宝等阿里系软件注册/扫码登录。为了更好使用阿里云,推荐小伙伴进行实名认证。
Github 点我查看 可以使用QQ邮箱、网易邮箱、谷歌邮箱等注册

3. 这里我使用Electerm连接到服务器,需要安装的小伙伴,请根据自己电脑操作系统查看对应教程:

Windows macOS
点我查看 点我查看

二、阿里云相关操作

1. 点击右侧链接进入容器镜像服务(个人版)控制台界面:点我查看

2. 按照下面的步骤创建命名空间:

3. 按照下图所示操作,绑定Github账号:

4. 设置访问阿里云镜像仓库密码,请按照下图所示操作:

三、Github相关操作

1. 点击进入Docker镜像推送仓库:点我查看

2. 按照下图所示操作将项目Fork到自己的仓库:

3. 此时项目成功Fork到我们自己的仓库中,点击Settings

4. 配置环境变量。按照下图所示操作,进入配置环境变量界面:

5. 请按照下图所示操作将4个Name-Secret对存储到Github:

Name 在阿里云如何找到Secret Github效果图
ALIYUN_NAME_SPACE
ALIYUN_REGISTRY_USER
ALIYUN_REGISTRY_PASSWORD
ALIYUN_REGISTRY registry.cn-hangzhou.aliyuncs.com

至此,阿里云和Github的配置完成!接下来,我们就试着拉取一个镜像。

四、将Dockerhub中的镜像通过Github推送到阿里云镜像仓库

说明:这里我拉取的是Redis相关镜像,其他镜像也可以参考下面的步骤:

1. 进入前面我们Fork的项目,点击上方的Actions,然后点击I understand my workflows, go ahead and enable them.同意协议:

2. 按照下图所示操作,进入到image.txt文件中:

3. 点击右上角的小铅笔,进入编辑模式:

4. 将文件中的内容全部清空,后续替换为我们自己的镜像名和版本:

5. 打开Dockerhub官网:点我查看

说明:由于国内网络原因,Dockerhub加载较慢,请耐心等待!

6. 在上方搜索框中搜索Redis,按一下回车,第一个就是Redis官方镜像:

7. 点击Tags即可查看所有镜像:

8. 这里我想拉取7.4.1、7.4、7.2.6三个版本的镜像:直接复制镜像名和版本号即可(前面的docker pull不要复制):

9. 将前面复制的镜像名和版本号依次粘贴到images.txt中,效果图如下:

10. 如果没有什么问题,点击右上角的Commit changes提交代码:

11. 此时会弹出一个窗口,点击Commit changes

12. 点击上方的Actions,即可查看镜像拉取和推送到阿里云的过程,如果出现绿色的对号,就说明镜像已经成功推送到阿里云镜像仓库:

如果项目构建失败,可能是如下原因:

  • 镜像或者版本号错误
  • 前面配置的Name-Secret配置不正确

13. 点击进入阿里云容器镜像服务控制台:点我查看。此时我们可以看到Dockerhub镜像通过Github成功推送到了阿里云镜像仓库,点击进入:

14. 接下来我们就可以按照阿里云给出的步骤一步一步拉取镜像了:

15. 使用Electerm连接到Linux服务器,登录到阿里云镜像仓库:

1
docker login --username=阿里云用户名 registry.cn-hangzhou.aliyuncs.com

效果图如下,需要输入密码(不在控制台显示),登录成功如下图所示:

16. 从镜像仓库中拉取镜像:

1
docker pull registry.cn-hangzhou.aliyuncs.com/icode504-docker-repo/redis:[镜像版本号]

其中镜像版本号获取方式如下图:

效果图如下,拉取镜像走的是国内的网络,速度非常快且可靠!


通过Github拉取Docker hub中的镜像
https://www.icode504.com/posts/111.html
作者
iCode504
发布于
2025年4月13日
许可协议