dockerhub国内镜像站集体下线?别慌,教你丝滑拉取镜像~
前言
想必大家都听说了,国内镜像站几乎都用不了,对于开发者来说,无疑是个不好的消息。在docker pull时直接超时失败,拉取不下来镜像。那么有没有什么办法解决呢?有!还不止一种。
- 通过docker配置文件配置可用的国内镜像源
- 设置代理
- 自建镜像仓库
方法1已经不太好使了,能找到可用的不多,有的还存在没有最新的镜像问题。
方法2可行,不过得要有科学上网的工具,再会一点配置代理的知识,操作起来稍稍复杂。
本文主要介绍第三种方法,上手快,简单,关键还0成本!
准备工作
- 登录阿里云,找到容器镜像服务,创建一个个人版实例。(第一次使用的话,会让设置访问密码。记住,后面会用)
- 找到仓库管理-命名空间,新建一个命名空间且设置为公开
3.不要创建镜像仓库,回到访问凭证
可以看到,如下2个信息,一个是你的阿里云用户名,一个是你的仓库地址(后面有用)
sudo docker login --username=阿里云用户名 registry.cn-beijing.aliyuncs.com
github配置
- fork项目,地址: docker_image_pusher
(感谢tech-shrimp提供的工具)
- 在fork后的项目中通过Settings-Secret and variables-Actions-New Repository secret路径,配置4个环境变量
- ALIYUN_NAME_SPACE-命名空间
- ALIYUN_REGISTRY_USER-阿里云用户名
- ALIYUN_REGISTRY_PASSWORD-访问密码
- ALIYUN_REGISTRY-仓库地址
3.配置要拉取的镜像 打开项目images.txt,每一行配置一个镜像,格式:name:tag 比如
提交修改的文件,则会自动在Actions
中创建一个workflow。等待片刻即可(1分钟左右)
5.回到阿里云容器镜像服务控制台-镜像仓库
可以看到镜像已成功拉取并同步到你自己的仓库中。
测试效果
我自己操作了下把nginx的镜像给拉了过来,找台服务器测试一下速度
哈哈!这速度杠杠的吧! 用这个方式的好处是,借助github的action机制,直接从dockerhub上拉取任何你想要的镜像,也不用担心国内镜像站版本更新不及时的问题。再从自建的仓库中pull下来就可以啦! 如果有小伙伴没捣鼓成功的,可以留言给我。
作者:临时工
来源:juejin.cn/post/7384623060199473171
来源:juejin.cn/post/7384623060199473171