解决镜像拉取难题:DaoCloud 镜像同步项目实战指南

解决镜像拉取难题:DaoCloud 镜像同步项目实战指南

【免费下载链接】public-image-mirror 很多镜像都在国外。比如 gcr 。国内下载很慢,需要加速。 【免费下载链接】public-image-mirror 项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror

引言:镜像拉取的痛点与解决方案

你是否还在为国外镜像仓库(如 gcr.io)的拉取速度慢而烦恼?在国内网络环境下,开发者常常面临镜像下载耗时过长、甚至失败的问题,严重影响开发效率。本文将以 xinference 镜像为例,详细介绍如何使用 DaoCloud 开源的 public-image-mirror 项目解决这一痛点。通过本文,你将学习到:

  • 如何利用 public-image-mirror 项目加速国外镜像的拉取
  • 两种主要的镜像加速使用方法
  • xinference 镜像的具体加速实践步骤
  • 项目中提供的工具脚本及其使用方法

项目概述:public-image-mirror

public-image-mirror 是 DaoCloud 开源的镜像同步项目,旨在为国内用户提供国外镜像的加速服务。项目的核心目标是:

  • 提供简洁有效的镜像加速方法
  • 易于添加新的镜像,无需修改代码
  • 保证同步的稳定可靠和实时性

项目的详细信息可以在 README.md 中找到。该项目仅是源镜像仓库(Registry)的 Mirror,所有 hash(sha256) 均和源保持一致,采用懒加载机制。由于缓存的存在,可能存在 1 小时的延迟。

镜像加速使用方法

public-image-mirror 提供了两种主要的镜像加速使用方法:增加前缀和前缀替换。

方法一:增加前缀(推荐)

这种方法是在原始镜像名称前添加 "m.daocloud.io/" 前缀。例如,将 "docker.io/library/busybox" 转换为 "m.daocloud.io/docker.io/library/busybox"。

              docker.io/library/busybox
                 |
                 V
m.daocloud.io/docker.io/library/busybox

方法二:前缀替换(不推荐)

这种方法是将镜像仓库的域名替换为项目提供的加速域名。例如,将 "docker.io/library/busybox" 转换为 "docker.m.daocloud.io/library/busybox"。

项目支持多种镜像仓库的前缀替换,完整列表可以在 README.md 中查看。以下是一些常用的替换规则:

源站替换为备注
docker.iodocker.m.daocloud.io
gcr.iogcr.m.daocloud.io
ghcr.ioghcr.m.daocloud.io
k8s.gcr.iok8s-gcr.m.daocloud.iok8s.gcr.io 已被迁移到 registry.k8s.io
registry.k8s.iok8s.m.daocloud.io

xinference 镜像加速实践

xinference 是一个功能强大的开源推理框架,支持多种大型语言模型。由于其官方镜像托管在国外,国内用户拉取时可能会遇到速度慢的问题。下面我们将介绍如何使用 public-image-mirror 加速 xinference 镜像的拉取。

确认 xinference 镜像在白名单中

首先,我们需要确认 xinference 镜像是否在项目的白名单中。查看 allows.txt 文件,我们可以找到以下条目:

docker.io/xprobe/xinference

这表明 xinference 镜像已经被纳入加速范围。

使用增加前缀方法拉取 xinference 镜像

按照推荐的增加前缀方法,我们可以使用以下命令拉取 xinference 镜像:

docker pull m.daocloud.io/docker.io/xprobe/xinference

使用该镜像运行容器

拉取完成后,我们可以使用以下命令运行 xinference 容器:

docker run -d -p 9997:9997 --name xinference m.daocloud.io/docker.io/xprobe/xinference

项目工具脚本介绍

public-image-mirror 项目在 hack/ 目录下提供了多个实用的工具脚本,用于辅助镜像的同步、验证和管理。

辅助函数脚本:helper.sh

hack/helper.sh 提供了一些常用的辅助函数,如替换域名、获取源列表等。例如,helper::replace_domain 函数用于在镜像名称前添加加速前缀:

function helper::replace_domain() {
    local domain="${1}"
    echo "${DOMAIN}/${domain}"
}

镜像验证脚本:verify-image.sh

hack/verify-image.sh 用于验证镜像是否可以被正确加速。使用方法如下:

./hack/verify-image.sh docker.io/xprobe/xinference

镜像同步脚本:merge-mirror.sh

hack/merge-mirror.sh 用于合并镜像同步配置。这个脚本帮助维护人员更方便地管理需要同步的镜像列表。

常见问题解决

镜像拉取时提示未找到

如果在拉取镜像时提示未找到,可能是该镜像尚未被缓存。此时,系统会自动将该镜像添加到同步队列。你可以在 同步队列状态页面 查看同步进度。

如何添加新的镜像到加速列表

如果你需要的镜像不在白名单中,可以通过提交 Issue 来请求添加。项目地址是:https://github.com/DaoCloud/public-image-mirror/issues

总结与展望

通过 public-image-mirror 项目,我们可以轻松解决国外镜像在国内拉取速度慢的问题。本文以 xinference 镜像为例,详细介绍了项目的使用方法和实践步骤。

项目团队持续维护和更新镜像列表,确保用户能够及时获取所需的镜像。未来,项目计划添加内容检测功能,进一步提高服务的安全性和可靠性。

如果你觉得这个项目对你有帮助,欢迎给项目点赞、收藏,并关注项目的最新动态。如果你有任何问题或建议,也欢迎通过 Issue 与项目团队交流。

附录:常用镜像加速命令参考

镜像名称官方地址加速地址
Nginxdocker.io/library/nginxm.daocloud.io/docker.io/library/nginx
MySQLdocker.io/library/mysqlm.daocloud.io/docker.io/library/mysql
Xinferencedocker.io/xprobe/xinferencem.daocloud.io/docker.io/xprobe/xinference
Ollamadocker.io/ollama/ollamam.daocloud.io/docker.io/ollama/ollama

【免费下载链接】public-image-mirror 很多镜像都在国外。比如 gcr 。国内下载很慢,需要加速。 【免费下载链接】public-image-mirror 项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值