¿Es posible conectarse directamente a la base de datos desde una aplicación separada?

¿Alguien tiene alguna idea de por qué esto no funciona, por favor?

Seguí algunos de los posts de @pfaffman y @Nacho_Caballero en este tema: How to make the database (or part of it) accessible to a cloud data processor? y el post de @mpalmer en este otro: Accessing to the database from outside the container - #4 by mpalmer.

Primero edité app.yml con:

expose:
  - "127.0.0.2:5432:5432"

Reconstruí el contenedor. Dentro del contenedor, establecí una contraseña para el usuario postgres y luego pude conectarme desde dentro del contenedor con lo siguiente:

psql -h localhost -d discourse -U postgres

Sin embargo, cuando salgo del contenedor e intento conectarme, obtengo:

# psql -h 127.0.0.2 -p 5432 -d discourse -U postgres
psql: server closed the connection unexpectedly
	This probably means the server terminated abnormally
	before or while processing the request.

También he probado cambiar el puerto por otro, pero obtengo lo mismo. Obtuve la IP 127 de docker ps y al inspeccionar en Network Settings (tengo tres instancias independientes de Discourse en ejecución).

Si cambio la IP (a la de uno de los otros foros de Discourse), obtengo una respuesta/mensaje diferente (más inmediata), por lo que lo anterior parece ser parcialmente correcto:

# psql -h 127.0.0.3 -p 5432 -d discourse -U postgres
psql: could not connect to server: Connection refused
	Is the server running on host "127.0.0.3" and accepting
	TCP/IP connections on port 5432?

¿Alguna idea de qué estoy haciendo mal? Buscar en Google psql: server closed the connection unexpectedly parece sugerir un problema de red, ¿necesito cambiar algo más dentro del contenedor?