如何使用 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。
我决定在另一台计算机上测试我的原始设置,一切似乎都正常。看来我的原始问题仅限于我的桌面,可能只是我需要在那台机器上解决一些网络配置问题。
我正在尝试让我的应用程序代码与我的 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
注意:尝试连接到 0.0.0.0:32793 时出现 pgAdmin 错误。 x' 连接到另一个已保存和工作的服务器(我没有尝试连接到它)。
发布您的 docker-compose 文件将有助于更好地回答您的问题。不过,我可以尝试查看您的屏幕截图。
在您的 docker-compose 文件中,将端口条目 - 5432 或 - 5432:5432 更改为
ports:
- "127.0.0.1:5432:5432"
试一试。问题似乎出在 IPv6 与 IPv4 之间。通过此更改,您应该能够连接到 postgres。
我决定在另一台计算机上测试我的原始设置,一切似乎都正常。看来我的原始问题仅限于我的桌面,可能只是我需要在那台机器上解决一些网络配置问题。