https://github.com/traefik/whoami/workflows/Main/badge.svg?branch=master](https://github.com/traefik/whoami/actions)
traefik/whoami 是一个轻量级的 Go 语言 Web 服务器,主要用途是打印操作系统信息和 HTTP 请求详情到输出。该镜像设计简洁,适合用于快速验证 HTTP 服务、调试请求参数及网络配置。
/api 端点)/bench)/data 端点)/echo 端点)/health 端点)/[?wait=d]
wait 查询参数,指定响应延迟时间,格式遵循 Go 的 time.Duration(如 /?wait=100ms 表示延迟 100 毫秒)/api
/bench
1,用于基准测试或简单可用性验证/data?size=n[&unit=u]
size=n:必填,指定数据大小数值unit=u:可选,单位(支持 KB、MB、GB、TB,默认单位:字节)/echo
/health
GET/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 | - | 启用详细日志输出 |
1. 基础运行(随机端口映射)
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 "http://0.0.0.0:32769" # 输出示例: # 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: */*
2. 指定端口与名称
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
3. 启用 TLS
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!
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务