Провайдер Docker в Docker
Провайдер Docker читает контейнеры на этом компьютере и берёт маршруты из их меток. Без него прокси не узнает, какие соседние копии можно включить в таблицу маршрутов.
Флаг --providers.docker=true
включает провайдер.
Флаг --providers.docker.exposedbydefault=false
запрещает автоматически
тащить в маршрут каждый
контейнер с открытым портом.
Чужая копия без метки
traefik.enable=true
в таблицу не попадает.
Сокет /var/run/docker.sock
монтируют в прокси
с суффиксом только чтение.
Порт 80
на прокси сохраняют.
Полное описание сервиса
proxy
выглядит так:
services:
proxy:
image: traefik:3
command:
- --entrypoints.web.address=:80
- --providers.docker=true
- --providers.docker.exposedbydefault=false
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
Подъём в фоне:
docker compose up -d
Прокси видит соседние контейнеры,
но маршрут появится
только после меток
на нужном сервисе.
Пустой проект с одним
proxy
страницу сайта
ещё не отдаёт.
Опишите сервис front на traefik:3 с провайдером Docker, запретом автопубликации и томом сокета только на чтение.
Объясните, почему контейнер alpine в том же проекте без метки включения не станет сайтом на прокси.