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 搭建的私有仓库,本方案不需要域名,速度也更快。至于部署难度,两者应该大致相当吧
配置阿里云
登录阿里云容器镜像服务,地址: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