Traefik может подключаться с помощью docker-compose, но не с помощью служб Swarm на Windows - PullRequest
0 голосов
/ 18 января 2019

Проблемы с сетевым подключением сервисов Docker Swarm с помощью traefik на Windows Server 2016. Я перепробовал все, что только мог придумать, и закончил тем, что получил docker-compose для работы с сетью nat, однако я планирую запускать больше приложений через сервисы Swarmи я не могу связать traefik и сервисы с сетью docker-compose.

Любая помощь приветствуется

Я пытался создать новую оверлейную сеть.Подключение сервисов без сети, которая по умолчанию имеет значение nat (поскольку я могу проверить nat и увидеть подключенные сервисы), но по-прежнему не могу получить доступ к приложению так же, как при использовании docker-compose.

Когда я запускаюdocker ps это вывод.

CONTAINER ID        IMAGE                                  COMMAND                   CREATED             STATUS              PORTS                                        NAMES
e9bb15daf909        stefanscherer/traefik-windows:latest   "/traefik --configfi…"    13 seconds ago      Up 8 seconds        80/tcp                                       traefik-test.ya54gf7ggrwpxk7hb2apyt87u.9t7n20hy2xyq80dtovp280u8t
26eccf39f07e        stefanscherer/whoami                   "\\http.exe"              23 seconds ago      Up 18 seconds       8080/tcp                                     traefik_whoami_1
ed95b99fae35        stefanscherer/traefik-windows          "/traefik --configfi…"    23 seconds ago      Up 17 seconds       0.0.0.0:80->80/tcp, 0.0.0.0:8080->8080/tcp   traefik_proxy_1

Как вы можете видеть, порты двух процессов traefik различны.

Ниже приведены рабочие команды docker-compose и нерабочие службы.

docker-compose.yaml

services:
  proxy:
    image: stefanscherer/traefik-windows
    command: --api --docker --logLevel=WARN --docker.endpoint=tcp://XXX.XX.XXX.X:2375
    networks:
      - default
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - E:/docker/traefik:C:/etc/traefik
  whoami:
    image: stefanscherer/whoami
    labels:
      - "traefik.enable=true"
      - "traefik.backend=whoami"
      - "traefik.frontend.rule=PathStrip: /whoami/"

networks:
  default:
    external:
      name: nat

Индивидуальные службы роя

docker service create `
  --name whoami `
  --label traefik.enable=true `
  --label traefik.backend=whoami `
  --label traefik.frontend.rule=PathPrefixStrip:/whoami `
  --label traefik.port=80 `
  stefanscherer/whoami

docker service create `
  --name traefik-test `
  --mode global `
  --constraint=node.role==manager `
  --publish 8080:8080 `
  --publish 80:80 `
  stefanscherer/traefik-windows  `
  --defaultentrypoints="http" `
  --retry `
  --debug=true `
  --logLevel=DEBUG `
  --docker `
  --docker.endpoint=tcp://XXX.XX.XXX.X:2375 `
  --docker.swarmmode `
  --docker.domain=traefik `
  --docker.watch `
  --docker.exposedbydefault=false `
  --web `
  --web.statistics

Ожидаемые результаты:

Посещение http://SERVER:8080/ следуетвызовите панель управления traefik, как это происходит при создании docker.

Фактические результаты:

Посещение http://SERVER:80 или http://SERVER:8080 веб-страница зависает и никогда не загружается,

...