Я могу использовать Traefik для веб-сайтов, так как они используют заголовки, когда они соединяются. Но я хочу иметь несколько разных экземпляров SQL Server, работающих через докеры, которые будут доступны снаружи (вне хоста докера, потенциально вне локальной сети)
Итак, есть ли что-нибудь, что позволяет подключаться к различным экземплярам sql-сервера, работающим на одном экземпляре docker, без необходимости предоставлять им разные порты или внешние IP-адреса, чтобы кто-то мог получить доступ
sql01.docker.local,1433
И sql02.docker.local,1433
из SQL Tools.
Начать дополнительный вопрос
Поскольку ответов не было, возможно, есть способ иметь разные экземпляры, такие как: sql.docker.local\instance1
и sql.docker.local\instance2
хотя я думаю, что это также не возможно
Завершить дополнительный вопрос
Это пример файла, который я пытался использовать для докеры (прежде чем я понял, что запросы к серверу sql не отправляются через заголовок хоста - или я ошибаюсь в этом?)
version: '2.1'
services:
traefik:
container_name: traefik
image: stefanscherer/traefik-windows
command: --docker.endpoint=tcp://172.28.80.1:2375 --logLevel=DEBUG
ports:
- "8080:8080"
- "80:80"
- "1433:1433"
volumes:
- ./runtest:C:/etc/traefik
- C:/Users/mvukomanovic.admin/.docker:C:/etc/ssl
networks:
- default
restart: unless-stopped
labels:
- "traefik.enable=false"
whoami:
image: stefanscherer/whoami
labels:
- "traefik.backend=whoami"
- "traefik.frontend.entryPoints=http"
- "traefik.port=8080"
- "traefik.frontend.rule=Host:whoami.docker.local"
networks:
- default
restart: unless-stopped
sql01:
image: microsoft/mssql-server-windows-developer
environment:
- ACCEPT_EULA=Y
hostname: sql01
domainname: sql01.local
networks:
- default
restart: unless-stopped
labels:
- "traefik.frontend.rule=Host:sql01.docker.local,sql01,sql01.local"
- "traefik.frontend.entryPoints=mssql"
- "traefik.port=1433"
- "traefik.frontend.port=1433"
networks:
- default
restart: unless-stopped
sql02:
image: microsoft/mssql-server-windows-developer
environment:
- ACCEPT_EULA=Y
hostname: sql02
domainname: sql02.local
networks:
- default
restart: unless-stopped
labels:
- "traefik.frontend.rule=Host:sql02.docker.local,sql02,sql02.local"
- "traefik.frontend.entryPoints=mssql"
- "traefik.port=1433"
- "traefik.frontend.port=1433"
networks:
- default
restart: unless-stopped
networks:
default:
external:
name: nat