У меня есть конфигурация стека докеров с оверлейной сетью под названием traefik
.Он содержит мой traefik
контейнер с обратным прокси-сервером и несколько контейнеров, которые обслуживают различные субдомены.Я добавляю новый, который потребуется для доступа к серверу базы данных, который я создал в другом контейнере, поэтому я добавил что-то вроде этого:
networks:
traefik:
driver: overlay
database:
driver: overlay
services:
traefik:
image: traefik
networks:
- traefik
ports:
- 80:80
- 443:443
- 8080:8080
volumes:
# ...
# ...
database:
image: postgres:9.6-alpine # match what's being used by heroku
networks:
- database
staging:
image: staging
networks:
- traefik
- database
deploy:
labels:
traefik.enable: "true"
traefik.frontend.rule: Host:lotto-ticket.example.com
traefik.docker.network: traefik
traefik.port: 3000
Когда я это сделал, запустился обратный проксивозвращает коды времени ожидания шлюза, указывающие, что контейнер staging
больше не был доступен для сети traefik
.Если я удаляю сеть database
из контейнера staging
, дочерний домен работает должным образом (хотя он явно не может получить доступ к базе данных), и когда я добавляю его обратно, обратный прокси-сервер начинает получать тайм-ауты от него.
Есть ли какой-то конфликт между двумя сетями?Нужно ли настраивать IP-маршрутизацию для использования нескольких сетей докеров в одном контейнере?
РЕДАКТИРОВАТЬ: добавлено больше подробностей в отрывок конфигурации