Traefik 最佳实践项目教程
1. 项目的目录结构及介绍
traefik-best-practice/
├── docker-swarm-traefik/
├── docker-traefik-dashboard-letsencrypt/
├── docker-traefik-tcp/
├── traefik-external-forward/
├── LICENSE
└── README.md
docker-swarm-traefik/
: 用于 Docker Swarm 环境的 Traefik 配置。docker-traefik-dashboard-letsencrypt/
: 包含 Traefik 仪表板和 Let's Encrypt 配置。docker-traefik-tcp/
: 用于 TCP 服务的 Traefik 配置。traefik-external-forward/
: 外部转发配置。LICENSE
: 项目许可证,采用 MIT 许可证。README.md
: 项目说明文档。
2. 项目的启动文件介绍
每个子目录中都包含一个 docker-compose.yml
文件,用于启动 Traefik 服务。以下是 docker-swarm-traefik/
目录中的 docker-compose.yml
示例:
version: '3.7'
services:
traefik:
image: traefik:latest
command: --providers.docker
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.toml:/etc/traefik/traefik.toml
networks:
- traefik-net
networks:
traefik-net:
driver: overlay
3. 项目的配置文件介绍
每个子目录中都包含一个 traefik.toml
配置文件,用于配置 Traefik 的行为。以下是 docker-swarm-traefik/
目录中的 traefik.toml
示例:
[entryPoints]
[entryPoints.web]
address = ":80"
[entryPoints.websecure]
address = ":443"
[providers.docker]
watch = true
network = "traefik-net"
[api]
dashboard = true
[certificatesResolvers.letsencrypt.acme]
email = "your-email@example.com"
storage = "acme.json"
[certificatesResolvers.letsencrypt.acme.httpChallenge]
entryPoint = "web"
以上配置文件定义了入口点、Docker 提供者、API 仪表板以及 Let's Encrypt 证书解析器。