带 systemd 的 traefik 看不到容器 docker

traefik with systemd don't see containers docker

我想通过 systemd 启动 traefik,但 systemd 与手动启动的结果不同。

下面是我手动启动 traefik 的例子:

$ traefik --web \
  --docker \
  --docker.domain=docker


$ docker ps -q
164f73add870


$ # check traefik api
$ http http://localhost:8080/api/providers
http http://localhost:8080/api/providers
HTTP/1.1 200 OK
Content-Length: 377
Content-Type: application/json; charset=UTF-8
Date: Sun, 15 Oct 2017 10:26:09 GMT

{
    "docker": {
        "backends": {
            "backend-rancher": {
                "loadBalancer": {
                    "method": "wrr"
                },
                "servers": {
                    "server-rancher": {
                        "url": "http://172.17.0.2:8080",
                        "weight": 0
                    }
                }
            }
        },
        "frontends": {
            "frontend-Host-rancher-docker": {
                "backend": "backend-rancher",
                "basicAuth": [],
                "entryPoints": [
                    "http"
                ],
                "passHostHeader": true,
                "priority": 0,
                "routes": {
                    "route-frontend-Host-rancher-docker": {
                        "rule": "Host:rancher.docker"
                    }
                }
            }
        }
    }
}

当我使用 systemd 时:

$ sudo systemctl status traefik
● traefik.service - Traefik reverse proxy
   Loaded: loaded (/usr/lib/systemd/system/traefik.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2017-10-15 12:27:35 CEST; 4s ago
 Main PID: 12643 (traefik)
    Tasks: 9 (limit: 4915)
   Memory: 14.6M
      CPU: 256ms
   CGroup: /system.slice/traefik.service
           └─12643 /usr/bin/traefik --web --docker --docker.domain=docker

Oct 15 12:27:35 devbox systemd[1]: Started Traefik reverse proxy.


$ docker ps -q
164f73add870


$ # check traefik api
$ http http://localhost:8080/api/providers
HTTP/1.1 200 OK
Content-Length: 2
Content-Type: application/json; charset=UTF-8
Date: Sun, 15 Oct 2017 10:28:18 GMT

{}

知道为什么我看不到我的容器 docker 吗?

通过将此添加到我的 user/group,它有效!

[Service]
User=...
Group=...