社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Docker镜像转存到阿里云私有仓库

各种折腾 • 1 年前 • 690 次点击  

什么是 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 搭建的私有仓库,本方案不需要域名,速度也更快。至于部署难度,两者应该大致相当吧

文章传送门:基于Cloudflare搭建私有Docker镜像源

配置阿里云

登录阿里云容器镜像服务,地址: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 个环境变量

- 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

@所有人:写文不易,如果你都看到了这里,请点个在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/174965