网站首页 > 精选文章 / 正文
1. 准备工作
- 确保已安装 Docker 和 Docker Compose。
- 拥有一个域名(例如 http://example.com),并确保 DNS 已解析到服务器 IP。
- 开放服务器的 80 和 443 端口。
2. 创建目录结构
mkdir -p traefik/{data,config}
cd traefik
- data/: 存储 Traefik 的证书和持久化数据
- config/: 存放配置文件
3. 创建 Traefik 配置文件
静态配置 (config/traefik.yml)
# 全局配置
global:
checkNewVersion: true
sendAnonymousUsage: false
# 入口点配置(定义监听的端口)
entryPoints:
web:
address: ":80"
http:
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: ":443"
# 自动 HTTPS 配置(Let's Encrypt)
certificatesResolvers:
letsencrypt:
acme:
email: your-email@example.com # 替换为你的邮箱
storage: /data/acme.json # 证书存储位置
httpChallenge:
entryPoint: web
# Docker 提供者配置(自动发现容器)
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false # 默认不暴露容器,需手动标记
# 启用 Dashboard(可选)
api:
dashboard: true
insecure: true # 生产环境应关闭,并通过路由保护
4. 创建 Docker Compose 文件 (docker-compose.yml)
version: '3'
services:
traefik:
image: traefik:latest
container_name: traefik
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro # 允许 Traefik 监听 Docker 事件
- ./data:/data # 证书存储
- ./config/traefik.yml:/etc/traefik/traefik.yml # 主配置文件
labels:
- "traefik.enable=true"
# 保护 Dashboard 路由(可选)
- "traefik.http.routers.traefik-dashboard.rule=Host(`traefik.example.com`)"
- "traefik.http.routers.traefik-dashboard.service=api@internal"
- "traefik.http.routers.traefik-dashboard.entrypoints=websecure"
- "traefik.http.routers.traefik-dashboard.tls.certresolver=letsencrypt"
5. 启动 Traefik
docker-compose up -d
6. 测试其他服务路由
示例:部署一个 Nginx 容器并配置路由
创建 docker-compose.nginx.yml:
version: '3'
services:
nginx:
image: nginx:alpine
container_name: nginx
labels:
- "traefik.enable=true"
- "traefik.http.routers.nginx.rule=Host(`app.example.com`)" # 替换为你的域名
- "traefik.http.routers.nginx.entrypoints=websecure"
- "traefik.http.routers.nginx.tls.certresolver=letsencrypt"
启动并附加到 Traefik 网络:
docker-compose -f docker-compose.nginx.yml up -d
7. 验证
- 访问 Dashboard:
- 打开 https://traefik.example.com(需配置 DNS),查看 Traefik 仪表盘。
- 访问 https://app.example.com,应看到 Nginx 默认页面。
检查证书:
ls ./data/acme.json # 确认证书已生成
8. 高级配置
安全加固 Dashboard
为 Dashboard 添加 Basic Auth:
# 生成密码(将 user:password 替换为实际值)
echo $(htpasswd -nb user password) | sed -e 's/\$/\$\$/g'
在 Traefik 的 labels 中添加:
- "traefik.http.routers.traefik-dashboard.middlewares=auth"
- "traefik.http.middlewares.auth.basicauth.users=user:$2y$05$xxxxxxxxxxxxxxxxxxxxxx"
配置日志
在 traefik.yml 中添加:
log:
level: INFO
filePath: /data/traefik.log
9. 常见问题
- 证书未生成:
- 检查 acme.json 权限:chmod 600 ./data/acme.json
- 确认域名 DNS 解析正确。
- Traefik 无法连接 Docker:
- 确保 docker.sock 挂载正确。
- 路由不生效:
- 检查容器标签 (labels) 是否拼写正确。
- 查看 Traefik 日志:docker logs traefik
10. 最终目录结构
traefik/
├── docker-compose.yml
├── config/
│ └── traefik.yml
└── data/
├── acme.json
└── traefik.log
通过此配置,Traefik 将自动管理 Docker 容器的 HTTPS 证书和路由,实现服务的动态发现和负载均衡
Tags:docker-compose 安装
猜你喜欢
- 2025-03-11 【云原生】Docker Compose 使用详解:轻松玩转多容器应用!
- 2025-03-11 飞牛nas安装dify过程
- 2025-03-11 搭建自己的聊天室平台、公司内部聊天平台,Rocket.Chat搭建使用
- 2025-03-11 利用docker-compose一键部署
- 2025-03-11 Docker-Compose
- 2025-03-11 Linux 服务器--openEuler基本操作及软件安装(七)--Docker安装
- 2025-03-11 docker 安装harbor
- 2025-03-11 在OpenWRT或Homelede中安装Docker-Compose
- 2025-03-11 docker安装gitlab
- 2025-03-11 Docker Compose 安装