簡體   English   中英

如何從(未經過安裝的)Python應用程序連接到dockerized PostgreSQL

[英]How to connect to a dockerized PostgreSQL from (an undockerized) Python app

我按照這里的說明通過Docker安裝PostgreSQL。 實際上,我使用了以下兩個命令:

Run
    docker run --name postgresql -d sameersbn/postgresql:9.4-2

Login
    sudo docker exec -it postgresql sudo -u postgres psql

然后我做\\conninfo我得到:

# You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432"

我接下來要做的是(但不確定如何)連接到該數據庫的想法是在我的本地機器上運行的外部Python應用程序(而不是另一個文件夾)。

我應該為localhost:5432拍攝localhost:5432還是有些東西丟失了?

您需要導出 postgresql 的端口 ,然后您可以像在本地運行一樣連接到它。

docker run --name postgresql -d -p 5432:5432 sameersbn/postgresql:9.4-2

如果你不理解上面的鏈接,我建議你仔細閱讀入門指南

正如@Burhan Khalid所說,您可以使用以下方法公開您的容器端口:

docker run --name postgresql -d -p 5432:5432 sameersbn/postgresql:9.4-2

要連接到PostgreSQL容器,可以直接連接到: 127.0.0.1:5432127.0.0.1:5432 你不能使用localhost:5432 ,因為它會嘗試在你的主機中找到一個套接字文件(套接字文件在容器中)。

另一種解決方案是使用您的容器IP地址。 要查找容器IP地址,您可以使用:

docker inspect --format '{{ .NetworkSettings.IPAddress }}' <your-container-id>

但是,如果重新啟動容器,容器將獲得新的IP。 因此,您需要重新配置數據庫配置。

暫無
暫無

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

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