Я новичок в образах докеров, контейнерах и всей логике объединения запущенных контейнеров вместе, поэтому проявите терпение, если этот вопрос звучит слишком глупо.
Я пытаюсь настроить рабочий сервер БД (PostgreSQL) в службе Google Container Engine и подключиться к нему из других образов докеров, работающих в том же кластере.
Я настроил облачный проект Google, включил API облачных контейнеров, создал кластер контейнеров и запустил официальные образы Docker от postgres. postgres: последний. Все идет нормально.
И вот проблема: когда я подключаю корневую консоль bash к работающему экземпляру, я могу без проблем подключиться с помощью команды psql.
Но когда я пытаюсь подключиться к нему с другого компьютера (даже после включения внешнего доступа к службе и пропуска ее через брандмауэр (команда ping работает с моей локальной машины), каждый доступ завершается сбоем с этим сообщением об ошибке:
psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
Подключаюсь по классике:
psql -h xxx.xxx.xxx.xxx -U myuser -W -d somedatabase
Кто-нибудь знает, почему это не сработает?
Спасибо за ответы, но наконец я нашел решение.
Может быть, это поможет тому, кто начнет экспериментировать с Docker на Google Container Engine.
Проблема здесь в том, чтобы правильно настроить номера портов и их соответствующие имена в определении стручка. Без имени порт работать не будет (по крайней мере, так казалось). Как только я добавил имя порта, соединение заработало как шарм.