Я хочу иметь удаленный доступ к моим контейнерам, работающим на сервере Debian, я использую Treafik сделать это.
У меня есть доступ к моему серверу через него IP (192.168.12.28).
Мой docker-compose файл для контейнера traefik:
version: "2"services:
traefik:
image: traefik
command: --web --docker --docker.domain=docker.localhost --logLevel=DEBUG
ports:
- "80:80"- "8080:8080"- "443:443"volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /dev/null:/traefik.toml
networks:
- webgateway
networks:
webgateway:
driver: bridge
Мой docker-compose файл для моих двух тестовых контейнеров:
version: "2"services:
app1:
image: php:7.0-apache
labels:
- "traefik.port=80"- "traefik.backend=app1"- "traefik.frontend.rule=Host:app1"volumes:
- ./app1:/var/www/html
networks:
- web
app2:
image: php:7.0-apache
labels:
- "traefik.port=80"- "traefik.backend=app2"- "traefik.frontend.rule=Host:app2"volumes:
- ./app2:/var/www/html
networks:
- web
networks:
web:
external:
name: traefik_webgateway
На данный момент я должен добавить записи в файл / etc / hosts посетителя (компьютер, с которого я получаю доступ к моим контейнерам), чтобы иметь доступ к моим контейнерам. Записи:
192.168.12.28 app1
192.168.12.28 app2
И у меня есть удаленный доступ с URL: Http: // app1 или же Http: // app2.
Я хочу, чтобы у меня был доступ к моим контейнерам с помощью URL:
http://192.168.12.28/app1 или же http://192.168.12.28/app2
без каких-либо изменений в файле / etc / hosts посетителя. (Я не буду обязывать моего клиента изменять свой файл / etc / hosts для доступа к моим приложениям …)
Это конфигурация доменного имени, которая не подходит?
Нужно ли менять конфигурацию по умолчанию для traefik?
Задача ещё не решена.
Других решений пока нет …