Имя хоста в Docker
Имя хоста в правиле маршрута сравнивают с адресом, который набрал браузер.
Строка traefik.http.routers.web.rule
с функцией Host(`site.localhost`)
пускает на сервис только запросы с этим именем.
Другое имя на том же порту прокси к этой копии не относит.
Метка traefik.enable=true
включает контейнер при выключенной автопубликации.
Сервис web
на traefik/whoami
без ports
стоит рядом с прокси в одном файле.
Полное описание проекта:
services:
proxy:
image: traefik:3
command:
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
web:
image: traefik/whoami
labels:
- traefik.enable=true
- traefik.http.routers.web.rule=Host(`site.localhost`)
Фоновый подъём:
docker compose up -d
Страница по адресу
http://site.localhost
показывает текст whoami
с именем контейнера.
Прямой порт у web
на компьютер не выведен.
Опишите сервис app на traefik/whoami с включением в прокси и хостом app.localhost в правиле роутера app.
Откройте http://app.localhost и запишите имя контейнера на странице.