2014-08-28 54 views
31

我用nginx,php和postgres創建了一個ubuntu鏡像。docker postgres pgadmin本地連接

我想將當前圖像中的postgres數據庫連接到位於本地機器上的pgadmin

我已經嘗試使用碼頭督察嘗試使用圖像ip來作出與我當地的pgadmin連接,但沒有太大的成功。我也嘗試在本地配置一些端口來連接工作。

+0

您不會說PostgreSQL是否正在偵聽外部連接(檢查您的配置文件),或者該端口是否顯示爲從本地計算機打開。 – 2014-08-28 08:21:08

+0

似乎沒有可能通過提供這麼少的信息來回答這個問題 – cthulhu 2014-08-28 13:47:29

回答

43

這是一個有效的問題,不知道爲什麼人們覺得「似乎不可能回答這個問題」。

所以,這裏是我怎麼做你正在嘗試做的:

  1. 拉Postgres的圖像從泊塢樞紐

    docker pull postgres:latest

  2. 使用下面的命令

    運行容器

    docker run -p 5432:5432 postgres

  3. 使用碼頭工人的檢查命令查找IP

  4. 使用IP,端口,用戶名和密碼在pgAdmin的連接

  5. 你也可以做一個簡單的telnet像下面以確認您是否可以訪問泊塢窗的Postgres集裝箱:

    telnet IP_ADDRESS 5432

+4

如果你用這個'-p 5432:5432'發佈端口,那麼你不需要找到容器的IP就可以使用你的主機IP,或者'127.0.0.1'或者'localhost' – Davos 2017-11-10 15:55:56

4

你必須在容器中的Postgres的端口暴露在您的本地系統。您可以通過運行您的容器,這樣做:

docker run -p 5432:5432 <name/id of container>

與GUI客戶端連接或CLI確保使用的IP地址不是localhost即使您的IP地址是本地主機的IP地址時。

docker ps會給你你的postgres容器的ip地址。

18

我在windows 10上運行docker for windows 1.12所做的成功。6(9655),該步驟是象下面這樣:

  1. 拉最新postgres的

    搬運工拉postgres的:最新

  2. 運行postgres的containner

    搬運工運行-d -e POSTGRES_USER =用戶-e POSTGRES_PASSWORD =密碼123 - 名稱db-my -p 5432:5432 --restart =總是postgres

  3. 然後安裝最新從 pgadmin website

  4. 運行的pgAdmin 4 pgAdmin4版本創建新的服務器,並輸入如下 主機:127.0.0.1端口 :5432 用戶名:用戶 密碼:password123

  5. 然後一切正常,連接到docker postgres實例成功。
+0

這個工作。應該被標記爲答案。 – Tarik 2017-04-20 00:09:01

相關問題