Как правильно подключать docker-сервисы к traefik?

Подключение Docker-сервисов к Traefik может быть достигнуто с использованием Traefik Docker роутера и двух основных методов: использование меток Docker и создание правил маршрутизации в конфигурационном файле Traefik.

  1. Использование меток Docker:
  • Установите Traefik и настройте его конфигурацию, убедившись, что вы включили использование Docker-провайдера.
  • При запуске контейнера добавьте метки Docker с информацией о правилах маршрутизации:
     docker run -d --name my-container 
     --label "traefik.enable=true" 
     --label "traefik.backend=my-backend" 
     --label "traefik.frontend.rule=Host:my-domain.com" 
     my-image

Здесь my-container - это имя вашего контейнера, my-backend - имя бэкэнда, к которому будет подключен сервис, my-domain.com - доменное имя, по которому будет доступен сервис.

  • Traefik будет автоматически сканировать Docker-среду и обнаруживать контейнеры с метками, соответствующими вашим правилам маршрутизации.
  1. Создание правил маршрутизации в конфигурационном файле Traefik:
  • Установите и настройте Traefik.
  • Создайте конфигурационный файл traefik.toml с необходимыми правилами маршрутизации. Например:
     [frontends]
       [frontends.my-frontend]
       backend = "my-backend"
         [frontends.my-frontend.routes.my-route]
         rule = "Host:my-domain.com"
     
     [backends]
       [backends.my-backend]
         [backends.my-backend.servers.my-server]
         url = "http://my-backend-container:80"

Здесь my-frontend - имя фронтэнда, my-backend - имя бэкэнда, my-route - имя правила маршрутизации, my-domain.com - доменное имя для доступа к сервису, my-backend-container - имя контейнера, предоставляющего этот сервис.

  • Запустите Traefik с использованием этого конфигурационного файла:
     traefik --configFile=traefik.toml

Убедитесь, что ваш контейнер запущен и доступен по указанному URL.

Оба метода предлагают гибкость и простоту в управлении подключаемыми сервисами. Вы можете использовать то, что наиболее удобно для вашего случая в зависимости от ваших предпочтений и требований.