亲测可用,这个方法是由技术爬爬虾大佬提供,简单地说就是通过github上的docker_image_pusher项目,将国外docker镜像转存到阿里云私人仓库。
此方法需要你有一个github账号,有一个阿里云账号。注册方法这里就不赘述了。
1.1. 获取阿里云相关参数
登录阿里云容器镜像服务。地址:https://cr.console.aliyun.com。
启用个人实例,创建一个命名空间,如,我创建了一个myspqce0103的命名空间。
在访问凭证中设置固定密码。
记住密码、用户名、仓库地址、命名空间这四个参数,后续会用到。
1.2. 复刻docker_image_pusher项目
在github上打开docker_image_pusher项目,地址:https://github.com/tech-shrimp/docker_image_pusher,将其fork到自己仓库。
点击左上角的图标。
在展开的列表中找到刚刚复刻的项目,点击进入。
1.3. 设置环境变量
进入Actions,点击“I understand my workfolws......"。
进入Settings(Actions同一行最右侧),选择Secrets and variables -> Actions,点击New repository secret,分别创建四个环境变量。
变量1:
Name:ALIYUN_NAME_SPACE
Secret:命名空间名称,前面获取阿里云相关参数时,我们创建了一个命名空间,如,我的是myspace0103。
变量2:
Name:ALIYUN_REGISTRY_USER
Secret:前面获取阿里云相关参数时,最下面圈起来的用户名。
变量3:
Name:ALIYUN_REGISTRY_PASSWORD
Secret:前面获取阿里云相关参数时,设置的密码。
变量4:
Name:ALIYUN_REGISTRY
Secret:前面获取阿里云相关参数时,最下面圈起来的仓库地址。
1.4. 填写需要转存的镜像
点击Code,再点击images.txt。
点击右上角的编辑按钮。
在文件中输入以下信息,然后点击右上角的提交修改。
infiniflow/ragflow:v0.16.0
infiniflow/infinity:v0.6.0-dev3
elasticsearch:8.11.3
mysql:8.0.39
postgres:13
redis:6
valkey/valkey:8
minio/minio
然后可以在Actions中看到刚刚修改的记录以及状态。
等待其执行完成,大约花10分钟左右,当右侧的状态Queued变为时间后,表示执行完成。
1.5. 获取新镜像地址
上一步处理完成后,回到阿里云镜像服务,可以看到仓库中已经有相关镜像了。
点击其中一个镜像,如ragflow。
在这个页面中其实已经有部分教程,我们可以按下面的1、2步骤来操作,注意第2步的镜像版本号,可以在该页面的镜像版本中查找。
注意复制命令的时候,从docker开始,不需要前面的$及空格。
1.6. 提前拉取镜像
回到docker桌面版。
执行获取新镜像地址中的第一步,然后输入密码。密码输入正确会出现Login Succeeded。
然后执行第二步,将镜像版本号拼接在命令中,如下图。
下载完成后可以在images中看到刚刚拉取的镜像。