首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从本地机器访问postgres db正在运行的docker容器

无法从本地机器访问postgres db正在运行的docker容器
EN

Stack Overflow用户
提问于 2022-09-13 07:47:12
回答 2查看 86关注 0票数 0

我花了3-4个小时在这件事上,至今仍未找到解决办法。

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

error role "postgres" does not exist

我已经尝试过从容器bash中编辑postgresql.conf file中的"listen_addresses“。

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

我的停靠者撰写文件:版本:3.4

代码语言:javascript
复制
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命令(即:)执行此操作,则会出现此问题。

代码语言:javascript
复制
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

当我尝试以下命令时: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中。

EN

回答 2

Stack Overflow用户

发布于 2022-09-13 08:03:37

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

票数 0
EN

Stack Overflow用户

发布于 2022-09-13 23:30:12

谢谢你们在这方面的帮助。

结果问题是,我也在本地的机器上运行postgres。

所以,一旦我关掉它,我就能连接起来。

我很感激你的时间!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73699258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档