简介
什么是 KSpeeder ?
KSpeeder 是一个基于 Docker 的容器化应用程序,用于优化 Docker 镜像仓库的访问速度。KSpeeder 提供了一系列功能来加速镜像下载、动态负载均衡和断点续传支持。并提供了多架构支持,可以在不同的硬件平台上运行。
    
工作原理
- 多镜像源并发下载:
KSpeeder 支持同时从多个镜像源下载 Docker 镜像。这种并发下载方式显著提升了下载效率,减少了等待时间。 - 动态负载均衡:系统智能选择最优镜像源,根据当前网络状况和资源分配情况,自动调整下载路径,确保下载过程的平稳与快速。
 - 断点续传:如果下载过程中发生中断,
KSpeeder 支持从中断位置继续下载,避免重复下载已完成的部分,节省时间和流量。 - 实时监控: 提供可视化界面,用户可以实时查看服务状态、下载进度以及其他相关信息,便于管理和优化使用体验。
 
    

主要特点
- 轻量级容器:基于 
Alpine Linux,资源占用少。 - 多架构支持:支持多种硬件架构,包括 
x86_64、ARM v6、
    
ARM v7 和 ARM64。 - Docker Compose 支持:提供 
Docker Compose 文件,方便部署和管理。 - 智能镜像源选择:自动选择最佳镜像源,以提高下载速度。
 
    
应用场景
- 开发环境:适用于需要频繁下载 
Docker 镜像的开发者,提升开发效率。 - 企业级应用:为企业提供高效的 
Docker 镜像管理和下载解决方案,确保持续集成和部署的顺畅。 - 教育和科研:在教育机构和科研单位中,快速获取和管理 
Docker 镜像,提高学习和研究的效率。 - 
    
多用户环境:支持多用户并发下载镜像,适合团队合作。
 
总之,KSpeeder 是一个强大的工具,可以帮助用户高效管理和加速 Docker 镜像的下载和使用。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 kspeeder ,选择第一个 linkease/kspeeder,版本选择 latest。
本文写作时, 
    
latest 版本对应为  0.3.0;

卷
在 docker 文件夹中,创建一个新文件夹 kspeeder,并在其中建两个子文件夹 config 和 
    
data
 |  |  | 
|---|
docker/kspeeder/data | /kspeeder-data |  | 
docker/kspeeder/config | /kspeeder-config |  | 

    
端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号

命令行安装
如果你熟悉命令行,可能用 
    
docker cli 更快捷
# 新建文件夹 kspeeder 和 子目录
mkdir -p /volume1/docker/kspeeder/{config,data}
# 进入 kspeeder 目录
cd /volume1/docker/kspeeder
# 运行容器
docker run -d \
   --restart unless-stopped \
   --name kspeeder \
   -p "5445:5443" \
   -p "5444:5003" \
   -v $(pwd)/data:/kspeeder-data \
   -v $(pwd)/config:/kspeeder-config \
   linkease/kspeeder:latest
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
services:
  kspeeder:
    image:linkease/kspeeder:latest
    container_name:kspeeder
    restart:unless-stopped
    ports:
      -"5445:5443"
      -"5444:5003"
    volumes:
      -./data:/kspeeder-data
      -./config:/kspeeder-config
然后执行下面的命令
    
# 新建文件夹 kspeeder 和 子目录
mkdir -p /volume1/docker/kspeeder/{config,data}
# 进入 kspeeder 目录
cd /volume1/docker/kspeeder
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d

运行
在浏览器中输入 http://群晖IP:5444 就能看到主界面

为了测试速度,老苏打算用个比较大的镜像,例如 ollama 来做测试,顺便给容器升个级
正常情况下,我们用的下载命令行是
docker pull ollama/ollama:latest
想要通过 KSpeeder 实现加速,需要给镜像添加前缀(注册表) 
    
registry.linkease.net:KSpeeder主服务的主机端口,因为老苏的主机端口 5443 被占用了,所以映射为了 5445,因此要添加的完整前缀就是 registry.linkease.net:5445
docker pull registry.linkease.net:5445/ollama/ollama:latest
峰值还是不错的

当然也会遇到 Retry 的情况

下载的镜像,显示的注册表是 
    
registry.linkease.net:5445

而正常下载的镜像,因为没有前缀,所以注册表显示的是 Docker Hub

因此,如果想像原来一样使用,需要多一个重命名的步骤
docker tag registry.linkease.net:5445/ollama/ollama:latest ollama/ollama:latest

现在只要先停止,然后重置一下,再次启动,就完成了 ollama 的升级
    

参考文档
linkease/docker_kspeeder: Docker镜像加速专家 多镜像并发下载,动态负载均衡,断点续传支持,Docker镜像代理服务
地址:https://github.com/linkease/docker_kspeeder
KSpeeder | Docker镜像加速专家
地址:https://kspeeder.istoreos.com/
快速开始指南 | KSpeeder
地址:https://kspeeder.istoreos.com/guide/getting-started.html
@所有人:写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。