Py学习  »  docker

Docker镜像加速专家KSpeeder

各种折腾 • 1 月前 • 125 次点击  

简介

什么是 KSpeeder ?

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

工作原理

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

主要特点

  1. 轻量级容器:基于 Alpine Linux,资源占用少。
  2. 多架构支持:支持多种硬件架构,包括 x86_64ARM v6 ARM v7 和 ARM64
  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,并在其中建两个子文件夹 config 和  data

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

端口

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

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口
容器端口
说明
54455443KSpeeder
 主服务端口
54445003
管理监控端口

命令行安装

如果你熟悉命令行,可能用  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

@所有人:写文不易,如果你都看到了这里,请点个在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/185057
 
125 次点击