繁体   English   中英

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

[英]cannot access postgres db running docker container from local machine

我已经为此花费了 3-4 个小时,但仍然没有找到解决方案。

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

error role "postgres" does not exist

我已经尝试在容器 bash 的 postgresql.conf 文件中编辑“listen_addresses”

我的设置:我使用的是 macbook - Monterey 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_USER=testUser替换为POSTGRES_USER=postgres 还要使用POSTGRES_PASSWORD中定义的密码。 删除旧容器并创建一个新容器。

感谢大家对此的帮助。

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

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

我很感激你的时间!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM