最近 DockerHub 被 GFW 彻底的墙了,这里介绍如何使用 Github Action 将国外的 Docker 镜像转存到阿里云私有仓库,供国内服务器使用。需前提准备好 GitHub 账号、阿里云账号。
一、介绍
Docker Images Pusher 是 Github 大神开源的将 Docker 镜像转存到阿里云私有仓库的项目。
支持DockerHub, gcr.io, k8s.io, ghcr.io等任意仓库
支持最大40GB的大型镜像
使用阿里云的官方线路,速度快
二、使用方式
2.1 配置阿里云
登录阿里云容器镜像服务,启用个人实例,并创建一个命名空间(ALIYUN_NAME_SPACE),为了方便我这里将命名空间设置为了公开。
准备访问凭证等信息,用于稍后的 Github Action 配置。
用户名(ALIYUN_REGISTRY_USER)
密码(ALIYUN_REGISTRY_PASSWORD)
仓库地址(ALIYUN_REGISTRY)
2.2 配置GitHub
Fork 项目
项目地址:https://github.com/tech-shrimp/docker_image_pusher启动 Action
进入到自己的项目,点击Action,启用Github Action功能。配置密钥
进入项目的Settings->General->Actions secrets and variables->Actions->Repository secrets->New repository secret。
将上一步阿里云的四个值添加到仓库密钥(ALIYUN_NAME_SPACE、ALIYUN_REGISTRY_USER、ALIYUN_REGISTRY_PASSWORD、ALIYUN_REGISTRY)。
2.3 添加镜像
编辑 docker_image_pusher项目的 images.txt 文件,添加想要的镜像 GitHub 即可自动触发 Action。
可以加 tag ,也可以使用默认的 latest 。
可添加 --platform=xxxxx 的参数指定镜像架构。
可使用 k8s.gcr.io/kube-state-metrics/kube-state-metrics 格式指定私库。
可使用 # 开头作为注释。
2.4 使用镜像
Github Action 执行完后,在 image.txt 中填写的镜像就会同步到到阿里云容器镜像服务中。
镜像地址为:阿里云仓库地址+命名空间+镜像名+版本号,如:
registry.cn-shenzhen.aliyuncs.com/zhangqintech/ubuntu:22.04
。