这是一个用于配置Docker镜像源的增强版工具,提供 Python版 和 Bash版 两种实现,可以自动检测、评估和配置最佳的Docker镜像源,提高Docker镜像拉取速度。
- 🔍 实时数据获取:从官方监控API获取真实的Docker镜像源状态
- ⚡ 智能排序:自动按ping值排序,优先显示最快的镜像源
- 🔧 有效性检测:自动检测当前配置的镜像源有效性
- 🧹 智能清理:支持清理失效的镜像源
- 🔄 灵活配置:支持替换或追加镜像源配置模式
- 🛡️ 可靠性保证:严格的错误处理,确保只使用真实有效的镜像源
- 🌐 跨平台支持:提供Python和Bash两种版本,适应不同环境需求
- 🛠️ 自动依赖安装:自动识别操作系统并安装缺失的 curl/jq 依赖
Python版本(适用于Windows/Linux/macOS)
- 运行脚本:
python docker_mirror_config.py
-
运行脚本:
sudo ./docker-mirror-config.sh
-
脚本会首先测试API连接,然后检查当前配置的镜像源有效性
-
如果发现失效的镜像源,会询问是否清理
-
脚本会获取并显示可用的镜像源列表(按延迟排序)
-
选择要使用的镜像源(输入序号,用逗号分隔,如"1,3";直接回车使用全部)
-
选择操作模式:
-
确认是否写入配置并重启Docker服务
如果遇到问题,可以使用调试模式来测试API连接:
- 打开脚本文件
- 找到最后几行代码
- 取消注释
test_heartbeat_api()行,注释main()行
- 运行脚本
-
主要数据源:通过API获取心跳数据和节点信息
https://status.1panel.top/api/status-page/heartbeat/docker
-
备用机制:当API不可用或数据解析失败时,使用内置的备用镜像源列表
- 网络连接错误处理
- API数据结构变化适应
- JSON解析错误处理
- 配置文件权限错误处理
- ✅ 重大修复:完全重写了数据解析逻辑,现在可以正确解析真实的API数据
- ✅ 功能增强:成功获取真实的Docker镜像源列表,包含实时ping值
- ✅ 数据准确性:从
window.preloadData 中提取真实的镜像源URL和对应的心跳数据
- ✅ 性能优化:按ping值自动排序,优先显示延迟最低的镜像源
- ✅ 代码优化:移除备用镜像源逻辑,确保获取的都是真实有效的镜像源
- ✅ 错误处理:改进错误处理机制,API失败时直接退出而非使用备用源
- ✅ 代码简化:移除调试功能和冗余代码,提高代码可读性和执行效率
- ✅ 兼容性:提供Python和Bash两个版本,适应不同环境需求
- ✅ 重大修复:完全重写了数据解析逻辑,现在可以正确解析真实的API数据
- ✅ 功能增强:成功获取真实的Docker镜像源列表,包含实时ping值
- ✅ 数据准确性:从
window.preloadData 中提取真实的镜像源URL和对应的心跳数据
- ✅ 性能优化:按ping值自动排序,优先显示延迟最低的镜像源
- ✅ 代码优化:移除备用镜像源逻辑,确保获取的都是真实有效的镜像源
- ✅ 错误处理:改进错误处理机制,API失败时直接退出而非使用备用源
- ✅ 代码简化:移除调试功能和冗余代码,提高代码可读性和执行效率
- ✅ 兼容性:提供Python和Bash两个版本,适应不同环境需求
- ✅ 细节优化:完善了交互提示和配置确认流程,提升用户体验
- ✅ 自动依赖安装:支持自动检测系统并一键安装 curl/jq 依赖,无需手动操作
最新版本已成功获取到以下真实镜像源(示例):
- Python 3.6+
- 需要requests库:
pip install requests
- 需要root/管理员权限来修改Docker配置和重启服务
| 特性 | Python版 | Bash版 |
|---|
| 跨平台支持 | ✅ Windows/Linux/macOS | ❌ 仅Linux |
| 依赖要求 | Python + requests | curl + jq |
| 安装复杂度 | 中等 | 简单 |
| 执行速度 | 中等 | 快 |
| 调试功能 | 丰富 | 基础 |
| 推荐场景 | 开发环境、Windows用户 | Linux服务器、生产环境 |
- 在生产环境中使用前,请先在测试环境验证
- 修改配置前会提示确认
- 如果Docker服务重启失败,请手动执行
sudo systemctl restart docker
- Bash版本仅适用于Linux系统,Windows用户请使用Python版本
- 两个版本功能基本一致,可根据环境选择合适的版本