无法从本地计算机访问运行docker容器的postgresdb



我在这方面花了3-4个小时,仍然没有找到解决方案。

我可以成功地运行docker容器并使用容器bash中的psql,但是,当我尝试从本地机器调用db时,我仍然会收到以下错误消息:

error role "postgres" does not exist

我已经尝试过编辑";listen_addresss"在容器bash 的postgresql.conf文件中

我的设置:我正在使用macbook-蒙特利12.4

我的docker撰写文件:版本:"3.4">

services:
postgres:
image: postgres:latest
ports:
- "5432:5432"
environment:
- POSTGRES_DB=postgres_db
- POSTGRES_USER=testUser
- POSTGRES_PASSWORD=testPW
volumes:
- postgres-data:/var/lib/postgresql/db

但如果我也通过标准CLI命令执行此操作,则会出现此问题,即:

docker run -d -p 5432:5432 --name my-postgres -e POSTGRES_PASSWORD=mysecretpassword postgres

我试着遵循这个教程,但没有成功:[https://betterprogramming.pub/connect-from-local-machine-to-postgresql-docker-container-f785f00461a7][1]

当我尝试此命令时:psql -h localhost -p 5432 -U postgres -W

它不起作用:psql: error: connection to server at "localhost" (::1), port 5432 failed: FATAL: role "postgres" does not exist

同样为了参考,用户";postgres";确实存在于postgres中-作为超级用户

感谢大家在这方面的帮助。

事实证明,问题是我也在本地机器上运行postgres。

所以一旦我关掉它,我就可以连接了。

感谢您抽出时间!

在compose配置中将POSTGRES_USER=testUser替换为POSTGRES_USER=postgres。同时使用POSTGRES_PASSWORD中定义的密码。删除旧容器并创建一个新容器。

最新更新