如何使用 docker 启动 postgres 数据库

How to use docker to spin up postgres database

我正在尝试让我的应用程序代码与我的 postgres 数据库通信,每个数据库都 运行 在单独的容器中。但是,每当我尝试访问我的数据库时,我都会不断收到 "dial tcp 172.19.0.3:5432: getsockopt: connection refused" ,我理解这意味着端口 5432 上没有任何监听。但我不明白这是怎么回事可能是因为 docker 没有报告启动我的应用程序服务器或 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

]4

注意:尝试连接到 0.0.0.0:32793 时出现 pgAdmin 错误。 x' 连接到另一个已保存和工作的服务器(我没有尝试连接到它)。

发布您的 docker-compose 文件将有助于更好地回答您的问题。不过,我可以尝试查看您的屏幕截图。

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

ports:
  - "127.0.0.1:5432:5432"

试一试。问题似乎出在 IPv6 与 IPv4 之间。通过此更改,您应该能够连接到 postgres。

我决定在另一台计算机上测试我的原始设置,一切似乎都正常。看来我的原始问题仅限于我的桌面,可能只是我需要在那台机器上解决一些网络配置问题。