前言
2024年6月6日 上海交通大学官方镜像服务站发布公告称
“由于监管要求,上海交大即时起将中止对Docker Hub仓库的镜像”
(当前官方公告已删除“由监管要求”的字样。)
随后,USTC也公告称:接上级主管部门通知,暂时关闭 Docker Hub 镜像缓存服务,GCR 与 Quay 暂不受影响。
本人在这里不想探讨背后的原因,本人只是希望今后国内能够少有一些类似的事件的发生,本身国内开发者的环境已经很恶劣,更不应该对其雪上加霜!
实现原理
使用Github Action进行操作,将官方的Docker镜像转存到阿里云私有仓库,从而进行私有读取
步骤
-
登录阿里云容器镜像服务https://cr.console.aliyun.com/
随后创建个人版实例 -
点击“命名空间” 并创建命名空间(如xiaolii),并将其改为“公有”类型
-
点击“访问凭证”,设置密码,并保存以下内容
(将其作为一个变量:用户名(ALIYUN_REGISTRY_USER) 密码(ALIYUN_REGISTRY_PASSWORD) 仓库地址(ALIYUN_REGISTRY)) -
使用你的Github账号Fork本项目: https://github.com/tech-shrimp/docker_image_pushe
-
随后进入自己fork的项目中,点击“Actions”,并启用Github Action功能
-
配置环境变量:进入Settings->Secret and variables->Actions->New Repository secret
-
将上一步的四个值 ALIYUN_NAME_SPACE、ALIYUN_REGISTRY_USER、ALIYUN_REGISTRY_PASSWORD、ALIYUN_REGISTRY 配置成环境变量
-
添加镜像:打开images.txt文件,添加你想要的镜像,可以加tag,也可以不用(默认latest) 、可添加 --platform=xxxxx 的参数指定镜像架构 、可使用 k8s.gcr.io/kube-state-metrics/kube-state-metrics 格式指定私库 、可使用 # 开头作为注释。
文件提交后,会自动进入Github Action构建 -
使用镜像:回到阿里云,镜像仓库,点击任意镜像,可查看镜像状态。(可以改成公开,拉取镜像免登录)
使用方法
在国内服务器pull镜像, 例如:
docker pull registry.cn-hangzhou.aliyuncs.com/xiaolii/xhofe/alist
registry.cn-hangzhou.aliyuncs.com 即 ALIYUN_REGISTRY(阿里云仓库地址)
xiaolii 即 ALIYUN_NAME_SPACE(阿里云命名空间)
xhofe/alist 即 阿里云中显示的镜像名
PS:当镜像重名时,会把命名空间作为前缀加在镜像名称前,如:
xhofe/alist
xiaoyaliu/alist