2016-04-05 22 views
1

誰もがこれについて私を助けることができますか?私はMac OS X El Capitan + Dockerを使用しています。Docker + PostgreSQL 9.3に接続できません

私のイメージのためDockerfile:

https://gist.github.com/andrealmar/bce56f7d8450990333703aa5c4ac8d61

私は私のコンテナを実行します。

docker run andrealmar/postgresql:9.3 

ドッキングウィンドウのPSは見ることを点検し、私のコンテナが実行されていると私はドッキングウィンドウを行うことを示していますコンテナのIPアドレス:

docker inspect 8e65f4dec821 | grep IPAddress 

出力:

"SecondaryIPAddresses": null, 
    "IPAddress": "172.17.0.2", 
     "IPAddress": "172.17.0.2", 

私はpsqlを使用して接続しよう:

psql -h 172.17.0.2 -U docker docker 

それは私にタイムアウトエラーが発生します。

は、誰もが、私はここに欠けていることを知っているん....

psql -h 172.17.0.2 -p 5432 -d docker -U docker -W 

しかし、同じタイムアウトエラーが起こる:

psql: could not connect to server: Operation timed out 
    Is the server running on host "172.17.0.2" and accepting 
    TCP/IP connections on port 5432? 

私はコマンドでも試してみましたか?

乾杯は、

答えて

2

あなたは、コンテナの「内部」(コンテナコンテナ)ネットワークに接続しようとしています。 OS Xで動作している場合、ドッカーデーモン(およびコンテナ)は仮想マシンで実行されています。

OS XマシンからPostgreSQLデータベースにアクセスするには、コンテナのポートを公開して公開する必要があります。たとえば、実行している:

docker run -d -p 2345:5432 andrealmar/postgresql:9.3 

は、ホスト上のポート2345上のコンテナ(あなたのケースでは、仮想マシン )のポート5432を公開します。

アクセスするには、 docker-machine(仮想マシンがdefaultと指定されていると仮定します)経由で取得できる仮想マシンのIPアドレスを使用します。

docker-machine ip default 
192.168.99.100 

次に接続します。

psql -h 192.68.99.100 -p 2345 -U docker docker 
+0

は、あなたが私の問題を解決し 非常@thaJeztahに感謝します。 –

関連する問題