2016-03-11 34 views
0

我想讓我的應用程序代碼與我的postgres數據庫溝通,每個數據庫運行在單獨的容器中。然而,每當我嘗試訪問我的分貝時,我總是得到「撥號tcp 172.19.0.3:5432:getsockopt:連接被拒絕」我的理解是指沒有任何監聽端口5432.但我不明白如何這可能是因爲docker報告沒有錯誤啓動我的應用程序服務器或postgres服務器。如何使用碼頭啓動postgres數據庫

version: '2' 
services: 
    postgres: 
    restart: 'no' 
    image: mhatch/eventcliq_pgdb 
    volumes_from: 
    - data 
    ports: 
    - "5432" 
    environment: 
    - POSTGRES_PASSWORD=TEST_PG_PWD 

data: 
    restart: 'no' 
    image: postgres:9.5.1 
    volumes: 
    - /var/lib/postgresql 
    - /etc/postgresql 
    - /var/log/postgresql 
    command: "true" 

    api: 
    restart: 'no' 
    build: . 
    environment: 
     - ENV=dev 
    image: mhatch/eventcliq-api 
    ports: 
     - "80:3001" 
    links: 
     - postgres:db 

successful docker-compose up

docker ps

api reporting socket error[![][3]] 4

注:嘗試連接到0.0.0.0:32793當pgAdmin的錯誤結果。 x連接到不同的保存和工作的服務器(我沒有嘗試連接到)。

回答

0

我決定在另一臺電腦上測試我的原始設置,並且事情似乎正常。看來我的原始問題僅限於我的桌面,並且可能存在一些我需要在該計算機上解決的網絡配置問題。

0

發佈您的docker-compose文件將有助於更好地回答您的問題。不過,我可以試試看你的截圖。

在您的碼頭工人,撰寫文件改變口岸的入境 - 5432或 - 5432:5432至

ports: 
    - "127.0.0.1:5432:5432" 

,並給予一展身手。這個問題似乎與IPv6 vs IPv4相關。這個改變你應該可以連接到postgres。

+0

感謝您的迴應,但我不認爲我想硬編碼端口映射。 – mvhatch

+0

這不是硬編碼的端口映射。 127.0.0.1只是本地主機。如果您不這樣做,docker的網絡接口會將其視爲IPV6地址,因此無法找到該服務。 – Phani

相關問題