如何使用docker来启动postgres数据库

时间:2016-03-11 02:14:28

标签: postgresql tcp docker docker-compose

我试图让我的应用代码与我的postgres数据库进行通信,每个数据库都在单独的容器中运行。但是,每当我尝试访问我的数据库时,我都会继续"拨打tcp 172.19.0.3:5432:getsockopt:连接被拒绝" 我明白这意味着什么都没有收听5432.但我不明白这是怎么回事,因为docker报告启动我的app服务器或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&d连接是一个不同的已保存和正常工作的服务器(我没有尝试连接到它)。

2 个答案:

答案 0 :(得分:0)

发布您的docker-compose文件有助于更好地回答您的问题。不过,我可以尝试一下你的截图。

在您的docker-compose文件中,将端口条目 - 5432或 - 5432:5432更改为

ports:
  - "127.0.0.1:5432:5432"

然后放手一搏。问题似乎与IPv6和IPv4有关。通过此更改,您应该能够连接到postgres。

答案 1 :(得分:0)

我决定在不同的计算机上测试我的原始设置,事情似乎正常。看来我的原始问题仅限于我的桌面,我可能需要在该计算机上解决一些网络配置问题。