Маршрут к хост-машине вместо конкретного контейнера
У меня есть простой docker-compose aka:
version: '3'
services:
app:
container_name: app
ports:
- 8081:8081
db:
container_name: db
ports:
- 5432:5432
И по умолчанию эти контейнеры создаются в сети по умолчанию (brige). Приложение имеет свойство соединения db: jdbc: postgresql: //db/ some_db, и все работает отлично. Но время от времени я хочу, чтобы приложение подключалось к другой базе данных, работающей на моем хост- компьютере, а не в контейнере Docker.
Основная проблема заключается в том, что я не могу изменить свои свойства подключения. И, в идеале, я не хочу запускать новый контейнер с некоторыми дополнительными опциями каждый раз, когда я хочу переключить хост db (но перезапуск в порядке)
Отсюда мой вопрос: каков наилучший способ добиться этого? Можно ли настроить дополнительный маршрут для разрешения хоста контейнеров? Например, если контейнер db недоступен, то маршрут к хосту.
1 ответ
Вы можете получить доступ к услугам хоста с вашего хоста.
Смотрите " Как получить доступ к порту хоста из Docker-контейнера":
ip addr show docker0
docker.for.mac.localhost # docker 17.06+ June 2017
если контейнер БД недоступен, то маршрут к хосту.
Это работа для оркестра.
Например, с https://kubernetes.io/ вы можете связать внешний балансировщик нагрузки, который можно настроить для перенаправления трафика на ваш модуль, если он недоступен.