![](/img/trans.png)
[英]Can only connect pgadmin to postgres docker container on port 5432, but not any other port?
[英]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.