この場合:
- Pgadminはlocalhostへの接続に失敗しますが、psqlはdockerの外部から機能します。
- pgadminとPostgresの両方がコンテナとして実行されています
そうするかどうかは指定していませんが、理想的には、両方のコンテナーをカスタムのブリッジの一部にすることができます。ネットワーク 自動DNS解決用。
明示的に追加されていない場合、それらはデフォルトのブリッジネットワークの一部になります。
Dockerランタイムで作成されたネットワークを見つけるには、次のように入力します。$ docker network ls
一部のネットワークはコンソールに表示されます。おそらく[name]_default
が見つかります それはあなたのネットワークでなければなりません。
docker network inspect [name] _default
を実行します たくさんの情報が表示されます。私たちにとって最も重要なのはIPv4Addressで、次のようなものです。 "02:42:ac:12:00:02"、 "IPv4Address": "172.18.0.2/16"、 "IPv6Address": ""}
pgAdminの新しいサーバーダイアログでサーバー名/IPにlocalhostを使用する代わりに、postgresインスタンスの「IPv4Address」に接続します。
私の場合、 172.18.0.2:5432
で接続します 、チャームのように機能しました。