Ist es möglich, sich direkt von einer separaten App mit der Datenbank zu verbinden?

Hat jemand eine Idee, warum das nicht funktioniert?

Ich habe einige Beiträge von @pfaffman und @Nacho_Caballero in diesem Thema befolgt: How to make the database (or part of it) accessible to a cloud data processor? und den Beitrag von @mpalmer in diesem: Accessing to the database from outside the container - #4 by mpalmer.

Zuerst habe ich die app.yml wie folgt bearbeitet:

expose:
  - "127.0.0.2:5432:5432"

Dann habe ich den Container neu erstellt. Im Container habe ich ein Passwort für den postgres-Benutzer festgelegt und kann dann von innerhalb des Containers mit folgendem Befehl verbinden:

psql -h localhost -d discourse -U postgres

Wenn ich jedoch den Container verlasse und den Versuch einer Verbindung von außen mache, erhalte ich folgende Meldung:

# 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.

Ich habe auch versucht, den Port auf einen anderen Wert zu ändern, aber erhalte dasselbe Ergebnis. Die IP 127 habe ich aus docker ps und der Inspektion unter Network Settings erhalten (ich habe drei eigenständige Discourse-Instanzen laufen).

Wenn ich die IP ändere (auf die einer der anderen Discourse-Foren), erhalte ich eine (sofortigere und) andere Antwort/Meldung, was darauf hindeutet, dass das Obige teilweise korrekt ist:

# 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?

Habt ihr eine Idee, was ich falsch mache? Eine Google-Suche nach psql: server closed the connection unexpectedly deutet auf ein Netzwerkproblem hin – muss ich also noch etwas im Container ändern?