
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
一个基于https://github.com/axboe/fio的磁盘基准测试https://hub.docker.com/r/e7db/diskmark,功能类似于CrystalDiskMark。
bash# 从Docker Hub获取 docker pull docker.xuanyuan.run/e7db/diskmark docker run -it --rm docker.xuanyuan.run/e7db/diskmark # 从GitHub Container Registry获取 docker pull ***-ghcr.xuanyuan.run/e7db/diskmark docker run -it --rm ***-ghcr.xuanyuan.run/e7db/diskmark
所有选项可通过CLI参数(推荐)或环境变量配置。CLI参数优先级高于环境变量。
容器支持多种CLI格式:--key value、--key=value和-k value。
| 短选项 | 长选项 | 环境变量 | 默认值 | 描述 |
|---|---|---|---|---|
-h | --help | 显示帮助信息并退出 | ||
-v | --version | 显示版本信息并退出 | ||
-t | --target | TARGET | /disk | 基准测试的目标目录 |
-p | --profile | PROFILE | auto | 基准测试配置文件:auto、default、nvme |
-j | --job | JOB | 自定义任务定义(如RND4KQ32T16),覆盖配置文件 | |
-i | --io | IO | direct | I/O模式:direct(同步)、buffered(异步) |
-d | --data | DATA | random | 数据模式:random(随机)、zero(全零) |
-s | --size | SIZE | 1G | 测试文件大小(如500M、1G、10G) |
-w | --warmup | WARMUP=1 | 1 | 启用预热阶段 |
--no-warmup | WARMUP=0 | 禁用预热阶段 | ||
--warmup-size | WARMUP_SIZE | (配置文件默认) | 预热块大小(默认8M,NVMe为64M) | |
-r | --runtime | RUNTIME | 5s | 每个任务的运行时间(如500ms、5s、2m) |
-l | --loops | LOOPS | 测试循环次数 | |
-n | --dry-run | DRY_RUN=1 | 0 | 验证配置而不实际运行测试 |
-f | --format | FORMAT | 输出格式:json、yaml、xml | |
-u | --no-update-check | UPDATE_CHECK=0 | 1 | 禁用启动时的更新检查 |
--color | COLOR=1 | 强制彩色输出 | ||
--no-color | COLOR=0 | 禁用彩色输出 | ||
--emoji | EMOJI=1 | 强制表情符号输出 | ||
--no-emoji | EMOJI=0 | 禁用表情符号输出 |
容器包含两种不同的测试配置文件:
bash# 4 GB文件,2次循环,启用预热,全零数据模式 docker run -it --rm docker.xuanyuan.run/e7db/diskmark --size 4G --warmup --loops 2 --data zero docker run -it --rm docker.xuanyuan.run/e7db/diskmark -s 4G -w -l 2 -d zero # 混合模式:3次循环,每次最多运行10秒 docker run -it --rm docker.xuanyuan.run/e7db/diskmark --loops 3 --runtime 10s # 自定义预热块大小 docker run -it --rm docker.xuanyuan.run/e7db/diskmark --warmup --warmup-size 128M
驱动器检测会自动选择合适的配置文件(default或nvme),如有需要可手动覆盖:
bashdocker run -it --rm docker.xuanyuan.run/e7db/diskmark --profile nvme
使用格式[RND|SEQ][size][Q depth][T threads]运行自定义任务:
RND或SEQ — 随机或顺序访问xxK或xxM — 块大小(如4K、1M)Qyy — 队列深度Tzz — 线程数示例:RND4KQ32T16 = 随机4K块,队列深度32,16线程。
bashdocker run -it --rm docker.xuanyuan.run/e7db/diskmark --job RND4KQ32T16
默认情况下,基准测试使用Docker卷挂载的/disk目录。挂载其他路径可测试不同磁盘:
bashdocker run -it --rm -v /path/to/disk:/disk docker.xuanyuan.run/e7db/diskmark
输出JSON、YAML或XML格式以便脚本处理(会自动禁用颜色、表情符号和更新检查):
bashdocker run -it --rm docker.xuanyuan.run/e7db/diskmark --format json docker run -it --rm docker.xuanyuan.run/e7db/diskmark --format yaml docker run -it --rm docker.xuanyuan.run/e7db/diskmark --format xml
JSON输出示例
json{ "configuration": { "target": "/mnt", "drive": { "label": "NVMe", "info": "Samsung SSD 990 PRO 2TB" }, "filesystem": { "type": "ext4", "partition": "/dev/nvme0n1p1", "size": "1.8T" }, "profile": "nvme", "io": "direct", "data": "random", "size": "1G", "warmup": 1, "runtime": "5s" }, "results": [ {"name": "SEQ1MQ8T1", "status": "success", "read": {"bandwidth_mb": 524, "iops": 499, "latency_ms": 2.15}, "write": {"bandwidth_mb": 498, "iops": 475, "latency_ms": 1.89}}, {"name": "SEQ1MQ1T1", "status": "success", "read": {"bandwidth_mb": 512, "iops": 488, "latency_ms": 0.52}, "write": {"bandwidth_mb": 487, "iops": 464, "latency_ms": 0.48}}, {"name": "RND4KQ32T1", "status": "success", "read": {"bandwidth_mb": 45, "iops": 11691, "latency_ms": 2.73}, "write": {"bandwidth_mb": 42, "iops": 10839, "latency_ms": 2.95}}, {"name": "RND4KQ1T1", "status": "success", "read": {"bandwidth_mb": 41, "iops": 10583, "latency_ms": 0.09}, "write": {"bandwidth_mb": 38, "iops": 9814, "latency_ms": 0.10}} ] }
YAML输出示例
yamlconfiguration: target: "/mnt" drive: label: "NVMe" info: "Samsung SSD 990 PRO 2TB" filesystem: type: "ext4" partition: "/dev/nvme0n1p1" size: "1.8T" profile: "nvme" io: "direct" data: "random" size: "1G" warmup: 1 runtime: "5s" results: - name: "SEQ1MQ8T1" status: "success" read: bandwidth_mb: 524 iops: 499 latency_ms: 2.15 write: bandwidth_mb: 498 iops: 475 latency_ms: 1.89 - name: "SEQ1MQ1T1" status: "success" read: bandwidth_mb: 512 iops: 488 latency_ms: 0.52 write: bandwidth_mb: 487 iops: 464 latency_ms: 0.48 - name: "RND4KQ32T1" status: "success" read: bandwidth_mb: 45 iops: 11691 latency_ms: 2.73 write: bandwidth_mb: 42 iops: 10839 latency_ms: 2.95 - name: "RND4KQ1T1" status: "success" read: bandwidth_mb: 41 iops: 10583 latency_ms: 0.09 write: bandwidth_mb: 38 iops: 9814 latency_ms: 0.10
XML输出示例
xml<?xml version="1.0" encoding="UTF-8"?> <benchmark> <configuration> <target>/mnt</target> <drive label="NVMe">Samsung SSD 990 PRO 2TB</drive> <filesystem type="ext4" partition="/dev/nvme0n1p1" size="1.8T" /> <profile>nvme</profile> <io>direct</io> <data>random</data> <size>1G</size> <warmup>1</warmup> <runtime>5s</runtime> </configuration> <results> <job name="SEQ1MQ8T1" status="success"> <read bandwidth_mb="524" iops="499" latency_ms="2.15" /> <write bandwidth_mb="498" iops="475" latency_ms="1.89" /> </job> <job name="SEQ1MQ1T1" status="success"> <read bandwidth_mb="512" iops="488" latency_ms="0.52" /> <write bandwidth_mb="487" iops="464" latency_ms="0.48" /> </job> <job name="RND4KQ32T1" status="success"> <read bandwidth_mb="45" iops="***" latency_ms="2.73" /> <write bandwidth_mb="42" iops="***" latency_ms="2.95" /> </job> <job name="RND4KQ1T1" status="success"> <read bandwidth_mb="41" iops="***" latency_ms="0.09" /> <write bandwidth_mb="38" iops="9814" latency_ms="0.10" /> </job> </results> </benchmark>
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务