2017-04-20 197 views
2

Docker新手在這裏。無法連接到AWS EC2實例中的Docker PostgreSQL容器

我正在嘗試在AWS EC2實例中爲PostgreSQL創建Docker容器。

首先,爲了實現持久性,我使用data volume container。下面是我用我的PostgreSQL數據庫創建一個數據卷容器中的命令:

docker create -v /var/lib/postgresql/data --name postgres9.3.6-data busybox 

然後我運行下面的命令來創建PostgreSQL的容器:

docker run --name postgres9.3.6 \ 
-p 5432:5432 \ 
-e POSTGRES_PASSWORD=password \ 
-e POSTGRES_USER=root \ 
-e POSTGRES_DB=db_name \ 
-d --volumes-from postgres9.3.6-data postgres:9.3.6 

我在本地環境中運行該然後嘗試通過PostgreSQL桌面客戶端連接到它,它工作。我能夠連接到存儲在本地PostgreSQL泊塢窗容器中的db_name。

之後,我使用了AWS中的一個EC2實例。並遵循上面描述的相同流程。然後返回到PostgreSQL桌面客戶端並嘗試連接到它。但我收到以下錯誤信息:

連接被拒絕。檢查主機名和端口是否正確,並且postmaster正在接受TCP/IP連接。

我在這裏錯過了什麼?

編輯

我已經檢查和postgresql.conf文件中的listen_addresses設置爲

listen_addresses='*' 

,並附加以下行到pg_hba.conf文件:

host all all 0.0.0.0/0 md5 

回答

0

您必須編輯postgresql.conf,將listen_addresses參數設置爲'*':

listen_addresses ='*'

也相應地編輯pg_hba.conf。

+0

感謝您的回覆,但我已經檢查了postgresql.conf和pg_hba.conf文件,並且listen_addresses已經設置爲'*'。 – hnroot

+0

你確定postgres服務器已啓動並正在運行嗎? –

1

postgresql.conf和pg_hba.conf看起來不錯。碼頭運行正確發佈postgresql端口。檢查您的EC2入站規則,可能不允許訪問5432端口。

+0

這不提供問題的答案。一旦你有足夠的[聲譽](https://stackoverflow.com/help/whats-reputation),你將可以[對任何帖子發表評論](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/17198392) – cantSleepNow