Skip to content

Docker 与 Traefik 快速开始

Docker 与 Traefik 入门

Docker 是 Traefik 的一等公民,原生支持 Docker 容器和服务。

无论你使用 Docker Compose 还是直接运行容器,Traefik 都能为管理你的 Docker 流量提供无缝衔接的体验。

本指南将展示如何:

  • 使用 Docker 安装 Traefik
  • 暴露 Traefik 仪表盘
  • 部署一个示例应用
  • 配置基础路由

前置条件

  • Docker
  • Docker Compose(可选)

安装 Traefik

使用 Docker Compose

创建一个 Docker Compose 文件。该配置:

  • 暴露 80 和 8080 端口
  • 启用 Docker Provider
  • 配置仪表盘基础设置 —— 8080 端口提供仪表盘,因为我们启用了 --api.insecure=true(仅限开发使用)
  • 挂载 Docker socket 用于容器发现
yaml
# 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:

bash
docker-compose up -d

使用 Docker CLI

你也可以直接使用 Docker 运行 Traefik。该命令:

  • 暴露 80 与 8080 端口分别用于 Web 流量和仪表盘访问
  • 挂载配置文件和 Docker socket
  • 使用与 Docker Compose 示例相同的配置

创建配置文件:

yaml
# traefik.yml
api:
  insecure: true
entryPoints:
  web:
    address: ":80"
providers:
  docker: {}

启动 Traefik:

bash
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 服务:

yaml
# whoami.yml
services:
  whoami:
    image: traefik/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.localhost`)"

应用配置:

bash
docker-compose -f whoami.yml up -d

测试你的设置

你可以使用以下 curl 命令验证应用是否已正确暴露:

bash
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 部分,你可以看到 whoami.localhost 路由由 Traefik Docker Provider 管理:

就这样!你已经成功部署了 Traefik 并在 Docker 中配置好了路由。

下一步


在生产环境使用 Traefik OSS?

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

基于 MIT 协议发布