Как я могу настроить службы в traefik через провайдера docker, если мой traefik работает на голом железном сервере, а не внутри контейнера docker? - PullRequest
0 голосов
/ 07 мая 2020

Пытаюсь настроить сервисы в траэфике через docker провайдера. Мой traefik работает на голом железном сервере, а не как контейнер docker.

Я пробую следующий docker -compose.yaml:

version: '3.7'

services:
  web:
    image: nginxdemos/nginx-hello:plain-text
    deploy:
      endpoint_mode: dnsrr
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.swarm-test.entrypoints=http-int"
        - "traefik.http.routers.swarm-test.rule=Host('swarm-test.example.com')"
        - "traefik.http.routers.swarm-test.service=swarm-test"
        - "traefik.http.services.swarm-test.loadbalancer.server.port=8080"
    networks:
      - host

networks:
  host:
    external: true

Мой маршрутизатор traefik не будет отображать эту службу.

Если я закомментирую следующие строки, эта служба появится в моем traefik с IP-адресом 10.0.0.0:

#networks:
#  - host

, но 10.0.0.0 IP-адрес является внутренним docker IP-адресом, поэтому установка IP-адреса 10.0.0.0 на моем сервере traefik bare emtal не заставит его взаимодействовать с моими docker контейнерами.

Изображение, используемое в этом примере, просто раскрывает порт 8080 с простой установкой nginx для тестирования.

Не имеет значения, включаю я или выключаю endpoint_mode: dnsrr config. Результаты теста одинаковы с endpoint_mode: dnsrr config.

Как мне настроить эту услугу в traefik через docker провайдера?

...