本文档介绍如何使用Docker运行Cloudflare SpeedTest工具。
- Docker 20.10+
- Docker Compose 1.29+(可选,用于docker-compose方式)
# 1. 克隆项目
git clone https://github.com/byJoey/yx-tools.git
cd yx-tools
# 2. 创建数据目录
mkdir -p data config
# 3. 构建并运行(交互模式)
docker-compose run --rm cloudflare-speedtest
# 4. 构建并运行(命令行模式)
docker-compose run --rm cloudflare-speedtest \
--mode beginner \
--count 10 \
--speed 1 \
--delay 1000# 1. 构建镜像
docker build -t cloudflare-speedtest:latest .
# 2. 运行容器(交互模式)
docker run -it --rm \
-v $(pwd)/data:/app/data \
-v $(pwd)/config:/app/config \
cloudflare-speedtest:latest
# 3. 运行容器(命令行模式)
docker run -it --rm \
-v $(pwd)/data:/app/data \
-v $(pwd)/config:/app/config \
cloudflare-speedtest:latest \
--mode beginner \
--count 10 \
--speed 1 \
--delay 1000项目根目录/
├── data/ # 测速结果文件(CSV、IP列表等)
├── config/ # 配置文件(API Token、仓库信息等)
└── docker-compose.yml
./data:/app/data- 测速结果会保存在宿主机的./data目录./config:/app/config- 配置文件会保存在宿主机的./config目录
docker-compose run --rm cloudflare-speedtest然后按照提示选择功能并输入参数。
docker-compose run --rm cloudflare-speedtest \
--mode beginner \
--count 20 \
--speed 5 \
--delay 500 \
--upload github \
--github-token YOUR_TOKEN \
--github-repo owner/repo \
--github-path results/ips.txt# 使用Docker的restart策略
docker run -d \
--name cloudflare-speedtest \
-v $(pwd)/data:/app/data \
-v $(pwd)/config:/app/config \
--restart unless-stopped \
cloudflare-speedtest:latest \
--mode beginner \
--count 10 \
--speed 1 \
--delay 1000在宿主机上设置Cron任务:
# 编辑crontab
crontab -e
# 添加定时任务(每天凌晨2点运行)
0 2 * * * cd /path/to/project && docker-compose run --rm cloudflare-speedtest --mode beginner --count 10 --speed 1 --delay 1000可以通过环境变量配置:
docker run -it --rm \
-e TZ=Asia/Shanghai \
-e PYTHONUNBUFFERED=1 \
-v $(pwd)/data:/app/data \
cloudflare-speedtest:latest容器默认使用bridge网络模式。如果需要自定义网络:
# docker-compose.yml
services:
cloudflare-speedtest:
networks:
- custom-network
networks:
custom-network:
driver: bridgeDocker镜像支持以下架构:
linux/amd64- Intel/AMD 64位linux/arm64- ARM 64位(如树莓派4、Apple Silicon等)
构建时会自动选择对应架构的CloudflareST可执行文件。
错误信息:找不到可执行文件: CloudflareST_proxy_linux_xxx
解决方案:
- 检查Dockerfile是否正确复制了可执行文件
- 确认可执行文件有执行权限:
chmod +x CloudflareST_proxy_linux_*
错误信息:下载失败 或 连接超时
解决方案:
- 检查容器网络连接:
docker exec -it container_name ping 8.8.8.8 - 检查防火墙设置
- 使用代理:在docker-compose.yml中添加环境变量
错误信息:容器退出后找不到结果文件
解决方案:
- 确认已正确挂载数据目录:
-v $(pwd)/data:/app/data - 检查目录权限:
chmod 755 data - 确认脚本输出路径为
/app/data/
解决方案:
# 在docker-compose.yml中设置
environment:
- TZ=Asia/Shanghai如果需要自定义构建,可以修改Dockerfile:
FROM python:3.9-slim
# 添加自定义依赖
RUN apt-get update && apt-get install -y \
your-custom-package
# ... 其他配置# 构建阶段
FROM python:3.9-slim as builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --user -r requirements.txt
# 运行阶段
FROM python:3.9-slim
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY cloudflare_speedtest.py .
# ...- 数据持久化:始终挂载数据目录,避免数据丢失
- 配置文件管理:使用config目录保存敏感信息,不要提交到Git
- 资源限制:为容器设置资源限制,避免占用过多资源
- 日志管理:使用Docker日志驱动管理日志
- 安全更新:定期更新基础镜像和依赖