2017-02-28 7 views
2

Ich habe postgres.app lokal auf meinem Mac ausgeführt und möchte, dass mein lokaler Docker-Container mit ihm verbunden werden kann. Wie mache ich das am besten?Wie macht man postgres.app db für docker Container zugänglich?

Ich habe diesen Post gefunden, der vorschlägt, die IP-Adresse des Docker-Hosts mit Hilfe des Flags --add-host (Host port with DB to Docker container) an einen Container zu übergeben. Die IP-Adresse meines Laptops ändert sich jedoch häufig. Gibt es dafür nicht einen einfacheren Weg? Gibt es keine einfache Möglichkeit, einen lokalen Port für einen Container zu öffnen?

+0

Sie können auch t verwenden Die Netzwerkadresse des Hosts im Subnetzwerk von Dockercontainern, die standardmäßig '172.17.0.1' lautet. Es funktioniert gut auf einem Linux-Host, aber ich bin mir nicht sicher, dass das auf einem Mac funktionieren würde. – bekce

+0

@bekce Das klingt, als ob ich das ausprobieren möchte. Irgendwelche Hinweise, wie Sie die Netzwerkadresse meines Hosts im Subnetzwerk meines Andock-Containers verwenden können? – Malte

+0

Nun, versuchen Sie einfach 'docker run -it --rm ubuntu', einmal drinnen:' apt update && apt install telnet && telnet 172.17.0.1 5432' und sehen, ob es eine Verbindung herstellen kann oder nicht. – bekce

Antwort

0

Wenn es sich um Entwicklerarbeitsstationen handelt, können Sie Ihren Docker Container im Host-Netzwerk starten.

Ihr Container läuft also im selben Stack wie Ihr Host und sollte auf Ihre postgres.app zugreifen können.

0

Versuchen Sie in Ihrem Container, eine Verbindung zum Hostnamen docker.for.mac.localhost herzustellen. Zum Beispiel:

psql -U my_user docker.for.mac.localhost -U my_user my_database 

From the docs:

Der Mac hat eine wechselnde IP-Adresse (oder keine, wenn Sie kein Netzwerk Zugriff haben). Ab dem 17.06. Empfehlen wir, eine Verbindung zum speziellen Nur-Mac-DNS-Namen docker.for.mac.localhost herzustellen, der in die interne IP-Adresse auflöst, die vom Host verwendet wird.

Hinweis: Dies erfordert Docker für Mac >= 17.06.0-ce-mac18, 2017-06-28

2

Nur wenige Dinge

  • Verwenden docker.for.mac.localhost als HOST (Dies setzt den neuesten Docker für Mac als @Pete erwähnt)
  • Fabrikat sicher gibt es einen solchen Eintrag in ~/Library/Application Support/Postgres/var-9.6/pg_hba.conf

host all all 0.0.0.0/0 trust

  • Ändern Sie diese Zeile listen_addresses = 'localhost' in ~/Library/Application Support/Postgres/var-9.6/postgresql.conf

zu

listen_addresses = '*'

oder

listen_addresses = 'localhost, docker.for.mac.localhost'

Verwandte Themen