• 已删除用户
Administrator
发布于 2024-06-17 / 13 阅读
0

Docker 镜像转存阿里云镜像服务

最近 DockerHub 被 GFW 彻底的墙了,这里介绍如何使用 Github Action 将国外的 Docker 镜像转存到阿里云私有仓库,供国内服务器使用。需前提准备好 GitHub 账号、阿里云账号。

一、介绍

Docker Images Pusher 是 Github 大神开源的将 Docker 镜像转存到阿里云私有仓库的项目。

  • 支持DockerHub, gcr.io, k8s.io, ghcr.io等任意仓库

  • 支持最大40GB的大型镜像

  • 使用阿里云的官方线路,速度快

二、使用方式

2.1 配置阿里云

  1. 登录阿里云容器镜像服务,启用个人实例,并创建一个命名空间(ALIYUN_NAME_SPACE),为了方便我这里将命名空间设置为了公开。

  1. 准备访问凭证等信息,用于稍后的 Github Action 配置。

  • 用户名(ALIYUN_REGISTRY_USER)

  • 密码(ALIYUN_REGISTRY_PASSWORD)

  • 仓库地址(ALIYUN_REGISTRY

2.2 配置GitHub

  1. Fork 项目
    项目地址:https://github.com/tech-shrimp/docker_image_pusher

  2. 启动 Action
    进入到自己的项目,点击Action,启用Github Action功能。

  3. 配置密钥
    进入项目的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