Если вы пытаетесь получить доступ к localhost внутри контейнера, то это локальный хост контейнера, а не ваша машина или какой-либо другой контейнер. Если ваше приложение и база данных объявлены в одном и том же составе, используйте одну и ту же сеть, в которой вы можете использовать имя контейнера
Это правильно, но если на вашем локальном компьютере установлена Postgres, вы может обойти ограничение контейнера, задав IP-адрес вашей машины, например, подключившись к Postgres по: 5432
Если все еще не работает, проверьте, есть ли у вас какие-либо ограничения брандмауэра на локальном компьютере, на порту 5432 и проверьте, если Postgres настроен на получение данных из внешнего источника.
Кроме того, этот пример следует использовать только «дома», я не предлагаю использовать его в сети компании или в любой производственной среде.