Как подключить Postgres Docker изображение из другого Docker контейнера - PullRequest
1 голос
/ 04 марта 2020

Я пытаюсь настроить этот сервер API Bullet Train на наших машинах. Я успешно могу запустить их сервер Python, используя метод docker-compose up.

Согласно документации, ему также нужна база данных. Я предпочел использовать docker изображение для Postgres DB docker run --name local_postgres -d -P postgres, которое возвращает это:

fb8b349961ff064e652d4f76402acd900c2fe4764475e3f487e84afd7407f70c

Это не возвращает сообщение об успехе говоря, если Postgres Docker работает успешно или нет. Он просто возвращает какую-то длинную строку, которая, по моему мнению, должна быть идентификатором Postgres Docker изображения.

Поскольку мне нужно подключить этот сервер API Bullet Train к этой базе Dockerized -

Вопрос в том, как найти строку подключения для этого Postgres Docker изображения?

1 Ответ

2 голосов
/ 04 марта 2020

Хитрость в том, чтобы использовать docker -композицию. Поместите изображение вашего приложения в качестве одного сервиса и ваше изображение postgres в качестве второго сервиса. Затем также включите оверлейную сеть в стек и укажите это в каждой из ваших служб. После этого приложение может получить доступ к базе данных через имя службы docker "local_ postgres" в качестве имени хоста.

Обновление согласно вашему комментарию

Убедитесь, что ваш файл Docker, определяющий контейнер postgres, содержит команду EXPOSE.

EXPOSE 5432

Если отсутствует, добавьте его и перестройте контейнер.

Запустите контейнер и включите опция ниже, которая выставит порт базы данных на localhost.

docker run --name local_postgres -p 5432:5432 -d -P postgres 

Проверьте, действительно ли порт открыт, набрав

docker ps | grep 'local_postgres'

Вы должны увидеть что-то подобное в выходных данных.

PORTS 0.0.0.0:5432->5432/tcp

Если вы видите этот вывод, порт 5432 успешно открыт на вашем хосте. Поэтому, если ваше приложение работает на локальном хосте, вы можете получить доступ к базе данных через локальный хост: 5432

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...