vagrantからbashプロビジョニングを使用してVMをセットアップしました。VMからdockerコンテナ内のpostgresqlにアクセスできない
起動時にアプリケーションとツールのバンドルをインストールしようとしましたが、そのうちのいくつかにはPostgreSQLデータベースが必要です。これは、PostgreSQLの作成デフォルト広く使われているドッキングウィンドウの画像を使用しています
function installPostgresql() {
docker pull postgres:9.4
docker run --name dbcontainer -e POSTGRES_PASSWORD=$POSTGRES_PASSWORD -e POSTGRES_DB=dbname -e POSTGTES_HOST=localhost -d postgres
}
...
installPostgresql
:
install.sh:私は必要な部分だけを含めるにプロビジョニングフェーズをストリップダウン。私は中央リポジトリから引き出した後に開始します。
何らかの理由で、私のVM内の実行中のpostgresサービスにアクセスできませんが、実行中のドッカーで/ bin/bashを実行し、VM内のドッカー内でpsqlを使用すると、CAN接続します。
インサイドVM:VM内のドッキングウィンドウ内
[email protected]:~$ psql -h localhost -p 5432 -U postgres -W
Password for user postgres:
psql: could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
:
[email protected]:/# psql -h localhost -p 5432 -U postgres -W
Password for user postgres:
psql (9.5.2)
Type "help" for help.
postgres=#
にpg_hba.conf:
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
host all all 0.0.0.0/0 md5
なぜVM内のドッカーの内部では動作しますが、VMからの「のみ」ではありませんか?