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