为什么traefik没有检测到我的容器

时间:2018-02-19 18:02:58

标签: docker traefik

我是traefik的新手,想在我的服务器上安装它。 我有一个在swarm模式下运行的docker服务器,并且在服务器上运行了一些容器。只是容器而不是服务。

我的第一次尝试是获取traefik docker图像并启动它。因此,使用let start页面上显示的docker文件,我可以在Web GUI中看到我的所有容器。

当我尝试使用traefik.toml配置而不是docker-compose.yml文件中的命令行参数时出现问题。

以下撰写文件将起作用并显示我的容器。 但是,如果我使用当前注释掉的行,我将看不到容器。

version: '3'

services:
  proxy:
    image: traefik
    command: --api  --docker --docker.domain="portal" --docker.exposedbydefault=false --logLevel=DEBUG
   #  command: --api   --logLevel=DEBUG
    networks:
      - webgateway
    ports:
      - "70:80"
      - "7070:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /home/grafra1969/traefik/traefik.toml:/etc/traefik/traefik.toml

networks:
  webgateway:
    driver: bridge

根据日志读取配置文件,根据我的理解应该类似于默认值。什么错了

这里是泊坞部分的设置

[docker]
endpoint =  "unix:///var/run/docker.sock"
domain = "portal.net"
ExposedByDefault = true
Watch = true

1 个答案:

答案 0 :(得分:1)

我的配置存在三个主要问题。

  • 文件 /home/grafra1969/traefik/traefik.toml 不存在。我忘了一个文件夹。因此使用了默认配置。
  • 以这种方式使用命令行将使用默认值覆盖docker provider的设置。
  • 启用docke.SwarmMode时,必须确保在服务上设置标签,而不是在容器上设置标签。

解决了所有这些问题后,我开始运行了。