如何一键优雅在国内下载docker镜像

三月 04, 2025 [虚拟化与容器] #Git #obsidian #容器

如何一键优雅在国内下载docker镜像

itopen组织 1、提供OpenHarmony 优雅实用的小工具 2、手把手适配riscv

文档介绍

鉴于当前国内网站无法下载正常下载docker镜像,从B站参考大神技术爬爬虾学习如何快速配置解决无法下载docker的问题,果然还是B站大神多。也感谢技术爬爬虾的免费分享。 使用Github Action将国外的Docker镜像转存到阿里云私有仓库,供国内服务器使用,免费易用

视频教程:https://www.bilibili.com/video/BV1Zn4y19743/

作者:技术爬爬虾

B站,抖音,Youtube全网同名,转载请注明作者

使用方式

配置阿里云

登录阿里云容器镜像服务

https://cr.console.aliyun.com/

启用个人实例,创建一个命名空间(ALIYUN_NAME_SPACE)

访问凭证->设置固定密码

访问凭证–>获取环境变量:

用户名(ALIYUN_REGISTRY_USER)

密码(ALIYUN_REGISTRY_PASSWORD)

仓库地址(ALIYUN_REGISTRY)

Fork本项目

Fork github项目到自己账号下:https://github.com/wenfei6316/docker_image_pusher

启动Action

进入您自己的项目,点击Action,启用Github Action功能

配置环境变量

进入Settings->Secret and variables->Actions->New Repository secret

将上一步的四个值

ALIYUN_NAME_SPACE, ALIYUN_REGISTRY_USER, ALIYUN_REGISTRY_PASSWORD, ALIYUN_REGISTRY

ALIYUN_NAME_SPACE: wenfei6316 # 上面命名空间的名称
ALIYUN_REGISTRY_USER: wenfei6316 # 阿里云的账号名
ALIYUN_REGISTRY_PASSWORD: xxxxxxx # 设置固定密码时的密码
ALIYUN_REGISTRY: registry.cn-hangzhou.aliyuncs.com # 访问凭据->登录实例下面有

配置成环境变量

添加镜像

打开images.txt文件,添加你想要的镜像 可以加tag,也可以不用(默认latest)

可添加 --platform=xxxxx 的参数指定镜像架构

可使用 http://k8s.gcr.io/kube-state-metrics/kube-state-metrics 格式指定私库

可使用 #开头作为注释

文件提交后,自动进入Github Action构建

内容模板

# 模板一
xhofe/alist:latest

# 模板二
--platform=linux/arm64 xiaoyaliu/alist

# 模板三
opengrok/docker

使用镜像

回到阿里云,镜像仓库,点击任意镜像,可查看镜像状态。(可以改成公开,拉取镜像免登录)

在国内服务器pull镜像, 例如:

# 国内镜像登录
sudo docker login --username=wenfei6316 registry.cn-hangzhou.aliyuncs.com

# 国内镜像拉取
docker pull registry.cn-hangzhou.aliyuncs.com/wenfei6316/nginx

http://registry.cn-hangzhou.aliyuncs.com 即 ALIYUN_REGISTRY(阿里云仓库地址)

wenfei6316 即 ALIYUN_NAME_SPACE(阿里云命名空间)

nginx 即 阿里云中显示的镜像名

多架构

需要在images.txt中用 --platform=xxxxx手动指定镜像架构 指定后的架构会以前缀的形式放在镜像名字前面

镜像重名

程序自动判断是否存在名称相同, 但是属于不同命名空间的情况。 如果存在,会把命名空间作为前缀加在镜像名称前。 例如:

xhofe/alist
xiaoyaliu/alist

定时执行

修改/.github/workflows/docker.yaml文件 添加 schedule即可定时执行(此处cron使用UTC时区)