跳到正文
Træfɪk

开始使用 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/

Traefik 仪表盘截图

部署示例应用

创建 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 来测试应用:

whoami 应用截图

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

Traefik 仪表盘 HTTP 路由器部分截图

完成了!您已在 Docker 中成功部署 Traefik 并配置路由。

后续步骤


在生产环境使用 Traefik OSS?

如果你在工作中使用 Traefik,可以考虑为 Traefik OSS 增加企业级 API 网关能力或商业支持。

为 Traefik OSS 增加 API 网关能力快捷且平滑,无需推倒重来,现有配置也会完整保留。请通过这个简短视频了解实际效果。


版权所有 © 头文件软件工作室

文档由 HeadFile Studio 翻译。

Traefik v3.7 中文快照 · 原文版权归 Traefik Labs 及贡献者所有 · MIT 许可证