为什么在使用Docker运行时,Traefik不能读取我的traefik.toml文件?

当按照正式的Docker镜像提到的步骤,我似乎无法让Traefik读取我的traefik.toml文件。

这工作

docker-compose.yml

 version: '3' services: proxy: image: traefik:1.3.5 command: --docker --docker.domain=docker.localhost --logLevel=DEBUG ports: - 80:80 volumes: - /var/run/docker.sock:/var/run/docker.sock #- ./traefik.toml:/traefik.toml whoami: image: emilevauge/whoami labels: - "traefik.backend=whoami" - "traefik.frontend.rule=PathPrefix:/whoami" 

请注意,没有安assembly置文件,并且所有configuration都作为parameter passing。

现在,如果我运行docker-compose up我会看到一堆来自Traefik的debugging语句。 如果我testing应用程序,它的工作原理(是的,我正在运行Windows 7):

 $ curl 'http://192.168.99.100:80/whoami' Hostname: c94bec5d0e3e IP: 127.0.0.1 IP: 172.19.0.3 GET /whoami HTTP/1.1 Host: 192.168.99.100 User-Agent: curl/7.50.1 Accept: */* Accept-Encoding: gzip X-Forwarded-For: 192.168.99.1 X-Forwarded-Host: 192.168.99.100 X-Forwarded-Proto: http X-Forwarded-Server: b8946b1c34a1 

这不起作用

docker-compose.yml

 version: '3' services: proxy: image: traefik:1.3.5 #command: --docker --docker.domain=docker.localhost --logLevel=DEBUG ports: - 80:80 volumes: - /var/run/docker.sock:/var/run/docker.sock - ./traefik.toml:/etc/traefik/traefik.toml whoami: image: emilevauge/whoami labels: - "traefik.backend=whoami" - "traefik.frontend.rule=PathPrefix:/whoami" 

请注意,没有parameter passing到Traefik,只有configuration文件。

现在,如果我运行docker-compose up ,没有任何日志语句出现。 如果我testing应用程序,我得到一个404:

 $ curl 'http://192.168.99.100:80/whoami' 404 page not found 

当然,没有任何debugging声明,很难知道什么是错的。

这是我的traefik.toml文件:

 debug = true logLevel = "DEBUG" [docker] endpoint = "unix:///var/run/docker.sock" domain = "docker.localhost" watch = true exposedbydefault = false 

我已经尝试将文件挂载到/etc/traefik/traefik.toml/traefik.toml ,并给出相同的结果。

我试过运行官方例子中提到的例子 ,结果也是类似的。

我在Windows 7上运行这个,虽然我不知道这是否相关。 我可以成功地将文件挂载到其他映像中

那么我做错了什么?

我认为你的问题是Windows。

您是否使用Docker for Windows或Docker Toolbox? 如果我没有记错的话,用W7你必须使用Docker Toolbox。

我认为你的文件treafik.toml没有安装到你的容器。