簡體   English   中英

如何通過端口5432連接到容器中的Postgres數據庫

[英]How can I connect to Postgres database in the container via port 5432

我正在使用以下命令運行一個Postgres Docker容器:(參考: https : //docs.docker.com/engine/examples/postgresql_service/

docker build -t eg_postgresql .

docker run --rm -P --name pg_test eg_postgresql

這可行,但是端口號是動態的。 我可以通過提供端口號連接到數據庫。 (我在docker ps命令中看到的端口)我想從Python連接到此docker數據庫,所以我需要一個靜態端口號。

我嘗試了以下參數:

-p 127.0.0.1:5432:5432

-p 5432:5432

在那種情況下,docker容器的端口號設置為5432。但是,我無法連接到數據庫。 我得到docker user does not exist錯誤信息。 你有什么建議?

我從您發布的鏈接中獲取了Dockerfile。

docker build -t eg_postgresql .

我開始用

docker run --rm -p 5432:5432 --name pg_test eg_postgresql (它將本地主機端口5432綁定到容器端口5432)

然后我嘗試與

psql -h localhost -p 5432 -d docker -U docker --password

它像一種魅力。 如果你得到一個消息,泊塢窗的用戶不存在,請仔細檢查從Dockerfile所有步驟都在成功地在執行docker build命令創建泊塢窗用戶在命令結束RUN /etc/init.d/postgresql start &&\\ psql --command "CREATE USER docker WITH SUPERUSER PASSWORD 'docker';" &&\\ createdb -O docker docker RUN /etc/init.d/postgresql start &&\\ psql --command "CREATE USER docker WITH SUPERUSER PASSWORD 'docker';" &&\\ createdb -O docker docker 還請確保本地主機上沒有運行PostgreSQL服務器,以便可以確保嘗試在容器內連接到PostgreSQL。

暫無
暫無

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

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