Dockerの最新リリースでは、ハイパーバイザを使用してコンテナに接続する代わりに、仮想マシンを使用しなくなりました。これは、私はもはや、ログインpsql
でpostgresにしないためにできることを意味します:Mac上のDocker(1.12.0)コンテナ内のPostgresサーバーに接続する方法は?
➜ postgres git:(master) ✗ docker run -d -p 5433:5432 db postgres
<sha>
➜ postgres git:(master) ✗ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
111f3bed4c52 db "/docker-entrypoint.s" 17 minutes ago Up 17 minutes 0.0.0.0:5433->5432/tcp zen_hugle
➜ postgres git:(master) ✗ psql -p 5433 -U postgres
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5433"?
を私もホストとしてlocalhostを指定しようとしたが、それは奇妙な出力になり:
➜ postgres git:(master) ✗ psql -h localhost -p 5433 -U postgres
psql: %
は、誰もが何をすべきかを知っていますこの場合?ありがとうございました。
参考:VirtualBoxだけではなくVMを使用していますが、Macではxhyve Virtual Machineを使用していますが、ネットワーキングにはUnixソケットを使用しています。 "本来の"モデルが必要な場合(例えば、本番システムに近づけるため)、従来のVM環境を使う方が良いかもしれません。 – ldg
あなたの実行ステートメントで 'docker run -d -p 5433:5432 --name = db postgres'とすると仮定します。 – ldg