特拉菲克(Traefik)的Getting Started指南很难以任何逐步的方式进行。它具有以下问题:
traefik
作为命令运行,但是不能在traefik
映像上运行命令,而必须使用traefik:alpine
甚至将其封装到容器中与docker exec -it ...
。traefik.toml
文件。原始docker-compose.yml
文件如下所示:
version: '3'
services:
reverse-proxy:
image: traefik # The official Traefik docker image
command: --api --docker #--consul --consul.endpoint=127.0.0.1:8500 # Enables the web UI and tells Traefik to listen to docker
ports:
- "80:80" # The HTTP port
- "8080:8080" # The Web UI (enabled by --api)
volumes:
- /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
whoami:
image: containous/whoami # A container that exposes an API to show its IP address
labels:
- "traefik.frontend.rule=Host:whoami.docker.localhost"
然后您可以通过以下方式运行它:
docker-compose up -d reverse-proxy
这很好,您可以在此处添加新服务,并指定新标签,例如上面的标签,即traefik.frontend.rule=Host:whoami-other.docker.localhost
。
您可以使用curl进行测试,并指定主机标题,如下所示:
curl -H Host:whoami.docker.localhost http://127.0.0.1
问题1)
第5行必须更改为使用图像traefik:alpine
。
image: traefik:alpine # The official Traefik docker image
您现在可以实际docker exec
这个容器。您只能在高山图片上使用sh
(不能使用/bin/bash
)。现在,我们可以执行以下操作:
docker exec -it traefik_reverse-proxy_1 sh
docker exec -it traefik_reverse-proxy_1 traefik --help
问题2)
从默认的docker-compose.yml
开始,没有提到traefik.toml
文件。即使我docker-compose up -d [some_new_service]
并且可以访问这些服务,但对容器的炮击也没有traefik.toml
文件。尽管容器中{strong> Basics的底部,它仍然无处,它表示查找其默认位置,例如/etc/traefik/
,$HOME/.traefik/
和{{1} }或工作目录。这是指主机还是容器?在容器中,我运行.
grep
,仅看到二进制文件:
find
traefik是否将我的服务配置存储在内存中?
文档(Basics)中的下一个逻辑页面立即开始详细说明/ # find / | grep traefik
/usr/local/bin/traefik
的配置,但是我必须尝试使用此类文件。
我不得不回到页面底部的Getting Started阅读中,发现当建议使用官方映像并像这样运行时,必须在卷中指定使用静态traefik.toml
文件:
traefik.toml
因此,我将服务docker run -d -p 8080:8080 -p 80:80 -v $PWD/traefik.toml:/etc/traefik/traefik.toml traefik
下原始volumes
中的docker-compose.yml
部分更改为使用类似的内容:
reverse-proxy
即使这样,我什至没有基本的volumes:
- /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
- $PWD/traefik.toml:/etc/traefik/traefik.toml
文件(examples folder of their GitHub中甚至没有一个文件)。我不得不去find one,但是甚至不确定它如何应用于我正在运行的服务的现有配置(即traefik.toml
和/或whoami
)。最后,在容器上运行whoami-other
会在find / | grep traefik
中显示相同的traefik.toml
文件,但没有提及服务(我仍然可以通过docker的/etc/traefik/traefik.toml
到达这些服务主办)。 那么配置在哪里?
答案 0 :(得分:0)
在这里 https://raw.githubusercontent.com/containous/traefik/v2.0/traefik.sample.toml traefik文件在某种程度上使新手感到困惑(我是)。