
traefik/whoami/bench)/data 端点)/echo 端点)/health 端点)/[?wait=d]wait 查询参数,指定响应延迟时间,格式遵循 Go 的 time.Duration(如 /?wait=100ms 表示延迟 100 毫秒)/api/bench1,用于基准测试或简单可用性验证/data?size=n[&unit=u]size=n:必填,指定数据大小数值unit=u:可选,单位(支持 KB、MB、GB、TB,默认单位:字节)/echo/healthGET/HEAD 等方法:返回由 POST 方法设置的状态码POST 方法:通过请求体设置状态码(如 POST -d '500' 会将后续 GET 请求状态码改为 500)| 标志(Flag) | 环境变量 | 描述 |
|---|---|---|
cert | - | TLS 证书路径(启用 HTTPS 时需指定) |
key | - | TLS 私钥路径(与 cert 配合使用) |
cacert | - | CA 证书链路径(启用双向 TLS 时需指定) |
port | WHOAMI_PORT_NUMBER | 服务监听端口(默认:80) |
name | WHOAMI_NAME | 服务名称(自定义标识) |
verbose | - | 启用详细日志输出 |
console# 启动容器并随机映射端口 docker run -d -P --name whoami-test traefik/whoami # 查看映射的端口(假设输出为 32769) docker inspect --format '{{ .NetworkSettings.Ports }}' whoami-test # 输出示例:map[80/tcp:[{0.0.0.0 32769}]] # 访问服务获取信息 curl "[***]" # 输出示例: # Hostname : 6e0030e67d6a # IP : 127.0.0.1 # IP : ::1 # IP : 172.17.0.27 # IP : fe80::42:acff:fe11:1b # GET / HTTP/1.1 # Host: 0.0.0.0:32769 # User-Agent: curl/7.35.0 # Accept: */*
console# 启动容器,指定端口 8080 和名称 "my-whoami" docker run -d -p 8080:80 --name my-whoami traefik/whoami --port 80 --name "my-whoami-service" # 或通过环境变量指定 docker run -d -p 8080:80 -e WHOAMI_PORT_NUMBER=80 -e WHOAMI_NAME="my-whoami-service" --name my-whoami traefik/whoami
console# 挂载证书目录并启用 TLS docker run -d -P -v ./certs:/certs --name whoami-tls traefik/whoami \ --cert /certs/example.cert \ --key /certs/example.key \ --cacert /certs/ca.cert # 双向 TLS 需指定 CA 证书
yamlversion: '3.9' services: whoami: image: traefik/whoami container_name: whoami-service ports: - "8080:2001" # 容器内端口 2001 映射到主机 8080 command: - --port=2001 # 覆盖默认端口为 2001 - --name=iamfoo # 自定义服务名称 - --verbose # 启用详细日志 environment: - WHOAMI_NAME=iamfoo # 环境变量方式设置名称(与 command 中 --name 效果相同) restart: unless-stopped
console# 设置健康检查状态码为 500 curl -X POST -d '500' http://localhost:8080/health # 验证健康检查响应(应返回 500 状态码) curl -v http://localhost:8080/health # 输出示例: # * Trying ::1:8080... # * TCP_NODELAY set # * Connected to localhost (::1) port 8080 (#0) # > GET /health HTTP/1.1 # > Host: localhost:8080 # > User-Agent: curl/7.65.3 # > Accept: */* # > # * Mark bundle as not supporting multiuse # < HTTP/1.1 500 Internal Server Error # < Date: Mon, 16 Sep 2019 22:52:40 GMT # < Content-Length: 0
console# 生成 2KB 大小的响应数据 curl -v "http://localhost:8080/data?size=2&unit=KB" # 响应体为 2048 字节的随机数据
使用 wscat 工具测试 WebSocket 回显:
console# 安装 wscat(需 Node.js 环境) npm install -g wscat # 连接到 /echo 端点 wscat -c ws://localhost:8080/echo # 输入任意消息,服务端会原样返回 > Hello whoami! < Hello whoami!


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务