快速入门¶
使用 Docker 的简单用例
使用 Docker Provider 启动 Traefik¶
创建一个 docker-compose.yml
文件,您将在其中定义 reverse-proxy 并使用 Traefik 官方图像的服务:
version: "3"
services:
reverse-proxy:
# The official v2.0 Traefik docker image
image: traefik:v2.0
# Enables the web UI and tells Traefik to listen to docker
command: --api --providers.docker
ports:
# The HTTP port
- "80:80"
# The Web UI (enabled by --api)
- "8080:8080"
volumes:
# So that Traefik can listen to the Docker events
- /var/run/docker.sock:/var/run/docker.sock
That's it. 现在你可以启动 Traefik 了!
使用以下命令启动reverse-proxy
:
docker-compose up -d reverse-proxy
您可以打开浏览器并转到http://localhost:8080/api/rawdata查看 Traefik 的 API 结果。
Traefik 检测新服务并为您创建路径映射¶
现在我们已经启动并运行了 Traefik 实例,下面我们将部署新的服务。
编辑 docker-compose.yml
文件并在文件末尾添加以下内容。
# ...
whoami:
# A container that exposes an API to show its IP address
image: containous/whoami
labels:
- "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
上面定义了 whoami
服务:一个简单的 Web 服务,它输出有关它所部署的机器的信息(其 IP 地址,主机等)。
使用以下命令启动 whoami
服务:
docker-compose up -d whoami
返回浏览器(http://localhost:8080/api/rawdata) ,看到 Traefik 已自动检测到新容器并更新了自己的配置。
当 Traefik 检测到新服务时,会创建相应的路由,以便您可以调用它们...... 让我们看看! (这里,我们正在使用 curl)
curl -H Host:whoami.docker.localhost http://127.0.0.1
显示以下输出:
Hostname: a656c8ddca6c
IP: 172.27.0.3
#...
更多实例?Traefik 负载均衡¶
使用以下命令运行更多whoami
服务实例:
docker-compose up -d --scale whoami=2
返回浏览器 (http://localhost:8080/api/rawdata),看到 Traefik 已自动检测到容器的新实例
最后,通过运行以下命令两次,看到 Traefik 在两个服务实例之间进行负载平衡:
curl -H Host:whoami.docker.localhost http://127.0.0.1
输出将显示以下之一:
Hostname: a656c8ddca6c
IP: 172.27.0.3
#...
Hostname: s458f154e1f1
IP: 172.27.0.4
# ...
下一步?
现在您已经基本了解了 Traefik 如何自动创建服务路线并对其进行负载平衡,现在是时候深入了解文档并让 Traefik 为您服务!