簡體   English   中英

Docker Postgres 連接被拒絕

[英]Docker Postgres connection refused

我正在嘗試運行包含 postgres 的 docker 容器並在我的應用程序上訪問其本地主機。 但是,我收到此錯誤:

UserRDD$ docker run -i --rm -e PGPASSWORD=12qw --network=host postgres:10.9 psql -h localhost -p 5433 -U postgres -d postgres -f -

psql: could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5433?
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 5433?

相同的代碼似乎正在為其他人運行。 不知道我錯過了什么。

你能告訴我我錯過了什么嗎? 在過去的 3 個小時里一直在努力解決它。

謝謝

使用以下帶有端口映射的命令將容器端口公開給 localhost -p <host_port>:<container_port>

docker run  -e POSTGRES_PASSWORD=12qw  -e POSTGRES_DB=stack -p 1111:5432 -d postgres

之后,您可以在localhost:1111端口上訪問這個 postgres 實例

psql -h localhost -p 1111 -U postgres -d stack

原因是Postgres DB 沒有運行,因為您覆蓋了默認的CMD ,它只是啟動 Postgres 客戶端 ( psql ),而不是 DB 服務器。 對於數據庫服務器,參數應該是postgres

docker run -i --rm -e PGPASSWORD=12qw --network=host postgres:10.9 postgres

由於您的命令沒有啟動 Postgres 服務器,但只有 Postgres 客戶端嘗試與容器的 localhost 連接,但 Postgres 服務器未運行。 這將是有道理的

docker run -i --rm  postgres:10.9 psql -h remote-server -p 5432 -U postgres -d postgres

要運行 postgres 服務器,您只需要

docker run  -e POSTGRES_PASSWORD=12qw  -e POSTGRES_DB=test -p 5432:5432 -d postgres:10.9

然后在 DB 啟動后與 db 連接。

另一個重要的事情是傳遞給運行命令的任何參數都將被視為 postgres 服務器的參數,例如

docker run -i --rm  postgres:10.9  --version

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM