开始使用 Docker 与 Traefik¶
Traefik 原生支持 Docker 容器和服务,为 Docker 提供一等支持。 无论使用 Docker Compose 还是直接运行容器,Traefik 都能为 Docker 流量管理提供顺畅的体验。
本指南介绍如何:
- 使用 Docker 安装 Traefik
- 暴露 Traefik 仪表盘
- 部署示例应用
- 配置基本路由
前提条件¶
- Docker
- Docker Compose(可选)
安装 Traefik¶
使用 Docker Compose¶
创建 Docker Compose 文件。 此配置:
- 暴露 80 和 8080 端口。
- 启用 Docker 提供者
- 使用基本设置配置仪表盘。由于启用了
--api.insecure=true,8080 端口用于提供仪表盘(仅限开发使用) - 挂载 Docker 套接字以发现容器
# docker-compose.yml
services:
traefik:
image: traefik:v3.7
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
启动 Traefik:
docker-compose up -d
使用 Docker CLI¶
您也可以直接通过 Docker 运行 Traefik。 此命令:
- 暴露 80 和 8080 端口,分别用于 Web 流量和仪表盘访问
- 挂载配置文件和 Docker 套接字
- 使用与 Docker Compose 示例相同的配置
创建配置文件:
# traefik.yml
api:
insecure: true
entryPoints:
web:
address: ":80"
providers:
docker: {}
启动 Traefik:
docker run -d \
-p 80:80 \
-p 8080:8080 \
-v $PWD/traefik.yml:/etc/traefik/traefik.yml \
-v /var/run/docker.sock:/var/run/docker.sock \
traefik:v3.7
暴露仪表盘¶
由于我们显式启用了不安全模式,仪表盘可通过 8080 端口访问,无需身份验证。 请勿在生产环境中启用此标志。
您可以通过以下地址访问仪表盘:
http://localhost:8080/dashboard/

部署示例应用¶
创建 whoami 服务:
# whoami.yml
services:
whoami:
image: traefik/whoami
labels:
- "traefik.http.routers.whoami.rule=Host(`whoami.localhost`)"
应用配置:
docker-compose -f whoami.yml up -d
测试部署¶
您可以使用以下 curl 命令,验证应用是否已正确暴露:
curl http://whoami.localhost
Hostname: 068c0a29a8b7
IP: 127.0.0.1
IP: ::1
IP: 192.168.147.3
RemoteAddr: 192.168.147.2:56006
GET / HTTP/1.1
Host: whoami.localhost
User-Agent: curl/8.7.1
Accept: */*
Accept-Encoding: gzip
X-Forwarded-For: 192.168.147.1
X-Forwarded-Host: whoami.localhost
X-Forwarded-Port: 80
X-Forwarded-Proto: http
X-Forwarded-Server: 9232cdd4fd6c
X-Real-Ip: 192.168.147.1
您也可以在浏览器中打开 http://whoami.localhost 来测试应用:

进入 Traefik 仪表盘的 HTTP Routers(HTTP 路由器) 部分,可以看到 whoami.localhost 路由由 Traefik Docker 提供者管理:

完成了!您已在 Docker 中成功部署 Traefik 并配置路由。
后续步骤¶
在生产环境使用 Traefik OSS?
如果你在工作中使用 Traefik,可以考虑为 Traefik OSS 增加企业级 API 网关能力或商业支持。
为 Traefik OSS 增加 API 网关能力快捷且平滑,无需推倒重来,现有配置也会完整保留。请通过这个简短视频了解实际效果。