Docker镜像加速专家KSpeeder

简介

什么是 KSpeeder ?

KSpeeder 是一个基于 Docker 的容器化应用程序,用于优化 Docker 镜像仓库的访问速度。KSpeeder 提供了一系列功能来加速镜像下载、动态负载均衡和断点续传支持。并提供了多架构支持,可以在不同的硬件平台上运行。

工作原理

  1. 多镜像源并发下载KSpeeder 支持同时从多个镜像源下载 Docker 镜像。这种并发下载方式显著提升了下载效率,减少了等待时间。
  2. 动态负载均衡:系统智能选择最优镜像源,根据当前网络状况和资源分配情况,自动调整下载路径,确保下载过程的平稳与快速。
  3. 断点续传:如果下载过程中发生中断,KSpeeder 支持从中断位置继续下载,避免重复下载已完成的部分,节省时间和流量。
  4. 实时监控: 提供可视化界面,用户可以实时查看服务状态、下载进度以及其他相关信息,便于管理和优化使用体验。

主要特点

  1. 轻量级容器:基于 Alpine Linux,资源占用少。
  2. 多架构支持:支持多种硬件架构,包括 x86_64ARM v6ARM v7ARM64
  3. Docker Compose 支持:提供 Docker Compose 文件,方便部署和管理。
  4. 智能镜像源选择:自动选择最佳镜像源,以提高下载速度。
  5. 实时监控:提供下载速度监控和可视化状态监控界面。
  6. 支持 HTTPS:安全地访问镜像仓库。
  7. 限速功能:可以配置带宽限制,控制下载速度。
  8. 异步读取优化:提高下载效率,减少等待时间。

应用场景

  • 开发环境:适用于需要频繁下载 Docker 镜像的开发者,提升开发效率。
  • 企业级应用:为企业提供高效的 Docker 镜像管理和下载解决方案,确保持续集成和部署的顺畅。
  • 教育和科研:在教育机构和科研单位中,快速获取和管理 Docker 镜像,提高学习和研究的效率。
  • 多用户环境:支持多用户并发下载镜像,适合团队合作。

总之,KSpeeder 是一个强大的工具,可以帮助用户高效管理和加速 Docker 镜像的下载和使用。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 kspeeder ,选择第一个 linkease/kspeeder,版本选择 latest

本文写作时, latest 版本对应为 0.3.0

docker 文件夹中,创建一个新文件夹 kspeeder,并在其中建两个子文件夹 configdata

文件夹 装载路径 说明
docker/kspeeder/data /kspeeder-data 数据存储目录
docker/kspeeder/config /kspeeder-config 配置文件目录

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口 说明
5445 5443 KSpeeder 主服务端口
5444 5003 管理监控端口

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 新建文件夹 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 文件

1
2
3
4
5
6
7
8
9
10
11
services:
kspeeder:
image: linkease/kspeeder:latest
container_name: kspeeder
restart: unless-stopped
ports:
- "5445:5443"
- "5444:5003"
volumes:
- ./data:/kspeeder-data
- ./config:/kspeeder-config

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 kspeeder 和 子目录
mkdir -p /volume1/docker/kspeeder/{config,data}

# 进入 kspeeder 目录
cd /volume1/docker/kspeeder

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

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

为了测试速度,老苏打算用个比较大的镜像,例如 ollama 来做测试,顺便给容器升个级

正常情况下,我们用的下载命令行是

1
docker pull ollama/ollama:latest

想要通过 KSpeeder 实现加速,需要给镜像添加前缀(注册表) registry.linkease.net:KSpeeder主服务的主机端口,因为老苏的主机端口 5443 被占用了,所以映射为了 5445,因此要添加的完整前缀就是 registry.linkease.net:5445

1
docker pull registry.linkease.net:5445/ollama/ollama:latest

峰值还是不错的

当然也会遇到 Retry 的情况

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

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

因此,如果想像原来一样使用,需要多一个重命名的步骤

1
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