通过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 |
|
效果图如下,需要输入密码(不在控制台显示),登录成功如下图所示:
16. 从镜像仓库中拉取镜像:
1 |
|
其中镜像版本号获取方式如下图:
效果图如下,拉取镜像走的是国内的网络,速度非常快且可靠!