什么是 Docker Images Pusher ?
Docker Images Pusher 是一个 Docker 镜像转存工具。使用 Github Action 将国外的 Docker 镜像转存到阿里云私有仓库,供国内服务器使用,免费易用。
功能特点:
- 支持
DockerHub, gcr.io, k8s.io, ghcr.io 等任意仓库;
官方提供了视频教程: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_PASSWORD:密码

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

填入第一步配置阿里云时获取的环境变量

依次添加 4 个环境变量
- ALIYUN_NAME_SPACE
- ALIYUN_REGISTRY
- ALIYUN_REGISTRY_USER
- ALIYUN_REGISTRY_PASSWORD

还需要启用 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 时区

使用镜像
回到阿里云的镜像仓库,会看到转存后的镜像列表

进入详情页面,会有详细的操作指南

下面是一个示例
# 登录阿里云镜像仓库
docker login --username=你的阿里云账号 registry.cn-hangzhou.personal.cr.aliyuncs.com
# 从阿里云镜像仓库拉取镜像
docker pull registry.cn-hangzhou.personal.cr.aliyuncs.com/命名空间/镜像仓库名称:镜像版本号
第一次需要登录验证,密码就是 ALIYUN_REGISTRY_PASSWORD 的值

接下来应该就可以愉快的玩耍了

参考文档
tech-shrimp/docker_image_pusher: 使用Github Action将国外的Docker镜像转存到阿里云私有仓库,供国内服务器使用,免费易用
地址:https://github.com/tech-shrimp/docker_image_pusher
flyeric0212/aliyun-docker-image-mirror
地址:https://github.com/flyeric0212/aliyun-docker-image-mirror
@所有人:写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。