
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
jauderho/toxiproxy 是基于 Toxiproxy 的 Docker 镜像。Toxiproxy 是一个网络条件模拟框架,旨在帮助开发和测试人员模拟各类网络异常场景,如延迟、丢包、带宽限制等,以验证应用在不稳定网络环境下的表现。该镜像由社区维护,提供多平台支持,确保与上游 Toxiproxy 版本同步,上游发布后 1 小时内构建更新,并每周至少重建一次以保持镜像时效性。
通过 docker run 快速启动 Toxiproxy,默认监听 0.0.0.0:8474 并提供 HTTP API:
bashdocker run -d -p 8474:8474 --name toxiproxy jauderho/toxiproxy
通过环境变量调整 Toxiproxy 基础运行参数:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
TOXIPROXY_HOST | 服务监听地址 | 0.0.0.0 |
TOXIPROXY_PORT | 服务监听端口 | 8474 |
TOXIPROXY_LOG_LEVEL | 日志级别(debug/info/warn/error) | info |
TOXIPROXY_CONFIG_FILE | 配置文件路径(容器内) | 无(需手动挂载) |
Toxiproxy 通过 JSON 配置文件定义代理规则,格式如下(示例文件 toxiproxy.json):
json{ "proxies": [ { "name": "web_service_proxy", // 代理名称(唯一标识) "upstream": "http://web-service:80", // 上游服务地址(目标服务) "listen": "0.0.0.0:8080", // 代理监听地址(容器内) "middleware": [ // 网络异常规则配置 { "name": "latency", // 延迟中间件 "attrs": { "latency": "500ms", // 固定延迟 "jitter": "100ms" // 延迟抖动范围 } }, { "name": "loss", // 丢包中间件 "attrs": { "loss": 10, // 丢包率(百分比) "correlation": 50 // 丢包相关性(0-100) } } ] } ] }
启动时挂载配置文件:
bashdocker run -d \ -p 8474:8474 \ -p 8080:8080 \ # 映射代理监听端口(对应配置文件中的 listen 端口) -v $(pwd)/toxiproxy.json:/toxiproxy.json \ -e TOXIPROXY_CONFIG_FILE=/toxiproxy.json \ --name toxiproxy jauderho/toxiproxy
创建 docker-compose.yml 集成 Toxiproxy 与测试服务:
yamlversion: "3.8" services: toxiproxy: image: jauderho/toxiproxy ports: - "8474:8474" # Toxiproxy API 端口 - "8080:8080" # 代理监听端口(对应配置文件中的 web_service_proxy) volumes: - ./toxiproxy.json:/toxiproxy.json environment: - TOXIPROXY_LOG_LEVEL=debug - TOXIPROXY_CONFIG_FILE=/toxiproxy.json depends_on: - web-service # 依赖的上游服务 web-service: image: nginx:alpine # 示例上游服务(可替换为实际服务) ports: - "80:80"
toxiproxy.json:json{ "proxies": [ { "name": "nginx_proxy", "upstream": "http://web-service:80", "listen": "0.0.0.0:8080", "middleware": [ { "name": "latency", "attrs": { "latency": "1s", "jitter": "200ms" } }, { "name": "loss", "attrs": { "loss": 15, "correlation": 30 } } ] } ] }
bashdocker-compose up -d
bashcurl http://localhost:8080 # 应感受到约 1 秒延迟,且部分请求失败(15% 丢包率)
Toxiproxy 提供 HTTP API 动态管理代理(默认地址 http://localhost:8474):
创建代理(添加带宽限制):
bashcurl -X POST http://localhost:8474/proxies \ -H "Content-Type: application/json" \ -d '{ "name": "bandwidth_proxy", "upstream": "tcp://db-service:3306", "listen": "0.0.0.0:3307", "middleware": [{"name": "bandwidth", "attrs": {"rate": "100kbit"}}] }'
查看代理列表:
bashcurl http://localhost:8474/proxies
删除代理:
bashcurl -X DELETE http://localhost:8474/proxies/bandwidth_proxy
644)listen 定义的代理端口与宿主机端口映射(如示例中的 8080:8080)upstream 地址(可通过 Docker 网络连接服务)8474)访问,避免未授权配置修改您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务