【发布时间】:2021-09-25 14:45:12
【问题描述】:
我正在本地机器上运行一个带有香草 Postgres 映像的 docker 容器。我想从我的本地计算机连接到数据库(即,不是从“容器内”)。但是,在尝试连接时,我收到一个错误。
这是我的docker-compose.yml 文件:
version: "3.8"
services:
db:
image: postgres
restart: always
ports:
- 5432:5432
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: mypassword
我是这样开始的:
docker-compose run db
这是我的连接方式:
psql -h localhost -p 5432 -U postgres
这会产生错误:
无法连接到服务器:连接被拒绝服务器是否在主机“localhost”(127.0.0.1) 上运行并接受端口 5432 上的 TCP/IP 连接?
如果我在没有 Docker Compose 的情况下启动数据库,相同的连接命令会按预期工作:
docker run --name mypg -p 5432:5432 -e POSTGRES_PASSWORD=password postgres
我可以顺其自然并使用上面的命令。但这似乎表明我对 Docker/Compose 的看法存在缺陷。例如,Docker Compose 的内部 DNS 解析器可能会导致这种方法失败。
有什么想法吗?
版本信息:
psql --version
psql (PostgreSQL) 13.3
我已经阅读了几篇 SO 帖子,包括这些帖子,但它们没有解决或解决我看到的问题:
【问题讨论】:
标签: postgresql docker-compose psql