Я пытаюсь создать переносимое решение для подключения контейнера приложения к контейнеру postgres.Под «переносимым» я подразумеваю, что я могу дать пользователю две docker run
команды, по одной для каждого контейнера, и они всегда будут работать вместе.
У меня есть док-контейнер postgres, работающий на моем локальном ПК, и язапустите его следующим образом:
docker run -p 5432:5432 -v $(pwd)/datadir:/var/lib/postgresql/data -e POSTGRES_PASSWORD=qwerty -d postgres:11
, и я смогу получить к нему доступ из приложения python flask, используя адрес 127.0.0.1:5432
.
Я поместил приложение python в контейнер докера какхорошо, и у меня возникают проблемы при подключении к контейнеру postgres.
Адрес 127.0.0.1:5432
не работает.
Адрес 172.17.0.2:5432
DOES работа (172.17.0.2 isадрес док-контейнера, на котором запущен postgres).Однако я считаю это непереносимым, потому что не могу гарантировать, каким будет IP-адрес контейнера postgres.
Мне известен флаг --add-host
, но он также запрашивает IP-адрес хоста, который мне нуженбыть локальным (127.0.0.1).Несмотря на несколько попаданий на --add-host
, я не смог заставить это работать так, чтобы последние команды запуска докера могли быть одинаковыми на любом компьютере, на котором они запускаются.
Я также попробовал это: Доступ к порту док-контейнера из другого контейнера
Моя ситуация такова, что postgres и myApp будут контейнерами, работающими на одном компьютере.Я бы предпочел решение, не основанное на Docker.