Docker镜像转存到阿里云私有仓库
什么是 Docker Images Pusher ?
Docker Images Pusher是一个Docker镜像转存工具。使用Github Action将国外的Docker镜像转存到阿里云私有仓库,供国内服务器使用,免费易用。
功能特点:
- 支持 DockerHub,gcr.io,k8s.io,ghcr.io等任意仓库;
- 支持最大 40GB的大型镜像
- 使用阿里云的官方线路,速度快
官方提供了视频教程:https://www.bilibili.com/video/BV1Zn4y19743/
相比老苏之前介绍的基于 Cloudfalre 搭建的私有仓库,本方案不需要域名,速度也更快。至于部署难度,两者应该大致相当吧
文章传送门:基于Cloudflare搭建私有Docker镜像源
配置阿里云
登录阿里云容器镜像服务,地址:https://cr.console.aliyun.com
创建 个人实例
- 地域:选择离自己近的地方,不过国内应该差别不大
- 协议:需要勾选 
 需要设置Registry登录密码,这个值就是ALIYUN_REGISTRY_PASSWORD的值 
新建命名空间
- ALIYUN_NAME_SPACE:命名空间,例如老苏设置的是- sh_laosu 
获取凭证
- ALIYUN_REGISTRY_USER:用户名
- ALIYUN_REGISTRY_PASSWORD:密码
- ALIYUN_REGISTRY:仓库地址 
Fork 代码
第一步、你要用 Github 的账号,并登录你的 GitHub 账号
第二步、打开 Docker Images Pusher 项目的地址:https://github.com/tech-shrimp/docker_image_pusher
第三步、Fork 该项目
Create a new fork
fork 成功后
配置 Github Action
Settings –> Secrets and variables –> New repository secret
填入第一步配置阿里云时获取的环境变量
- Name:填入环境变量名;
- Secret:填入环境变量值; 
 依次添加- 4个环境变量
| 1 | - ALIYUN_NAME_SPACE | 

还需要启用 Actions
添加镜像
修改 images.txt 文件,替换成你想要转存的 docker 镜像
- 可以加 tag,也可以不加 (默认为latest);
- 可添加 --platform=xxxxx的参数指定镜像架构;
- 可使用 k8s.gcr.io/kube-state-metrics/kube-state-metrics格式指定私库;
- 可使用 #开头作为注释 
 按需要进行修改 
 文件提交后,自动进入Github Action构建 
 执行过程 
 执行完成 
定时执行
如果希望定时拉取镜像,需修改 /.github/workflows/docker.yaml 文件,添加 schedule 即可定时执行
此处
cron使用UTC时区

使用镜像
回到阿里云的镜像仓库,会看到转存后的镜像列表
进入详情页面,会有详细的操作指南
下面是一个示例
| 1 | # 登录阿里云镜像仓库 | 
第一次需要登录验证,密码就是 ALIYUN_REGISTRY_PASSWORD 的值
接下来应该就可以愉快的玩耍了
参考文档
tech-shrimp/docker_image_pusher: 使用Github Action将国外的Docker镜像转存到阿里云私有仓库,供国内服务器使用,免费易用
地址:https://github.com/tech-shrimp/docker_image_pusherflyeric0212/aliyun-docker-image-mirror
地址:https://github.com/flyeric0212/aliyun-docker-image-mirror