Маршрут к хост-машине вместо конкретного контейнера

У меня есть простой 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/ вы можете связать внешний балансировщик нагрузки, который можно настроить для перенаправления трафика на ваш модуль, если он недоступен.

Другие вопросы по тегам