Skip to content

快速入门

使用 Docker 的简单用例

quickstart-diagram

使用 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 为您服务!