首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法远程连接Postgres Docker容器

问无法远程连接Postgres Docker容器
EN

Stack Overflow用户
提问于 2019-03-20 19:09:08
回答 2查看 1.6K关注 0票数 1

我有一个码头集装箱运行在一台centos机器上使用官方的Postgres码头图像,它不能被远程连接。sudo docker ps | grep postgres给出

492192ff9170 postgres "/docker-entrypoint.s“2年前上升18小时0.0.0:5432->5432/tcp postgres

当我在另一台机器上尝试psql -h <server domain name> -p 5432 -U postgres时,它只是打印出来

psql:未能连接到服务器:操作超时 服务器是否在主机域名上运行,并在端口5432上接受TCP/IP连接?

我在远程服务器上做了sudo iptables -S | grep 5432并打印出来

-A码头-d 172.17.0.2/32!-i docker0 -o docker0 -p tcp -m --dport 5432 -j ACCEPT

所以看起来port 5432没有被阻塞

在容器/var/lib/postgresql/data/中,

host all all 0.0.0.0/0 md5已添加到pg_hba.conf中,而postgresql.conf指定了listen_addresses = '*'。

尽管我可以使用psql -h localhost -p 5432 -U postgres在本地成功地连接到实例,但它仍然不能被远程访问。

有人能在这个问题上说出点什么吗?非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2019-03-20 20:13:04

你是如何启动postgres容器的?

可能您只是缺少了一个容器到主机端口绑定选项。

尝试将-p 5432:5432添加到您的停靠程序运行命令中。这将将容器中的端口5432映射到Docker主机(远程服务器)上的端口5432。

有关详细信息,请参阅码头联网文档。另见这个postgres示例。

票数 1
EN

Stack Overflow用户

发布于 2021-10-24 15:57:35

我遇到了一个类似的问题,我无法远程连接到码头容器中的postgres db。我绕了两天头,直到我找到了解决办法。

我用以下方式配置了端口:-p 5438:5432。换句话说,我试图在我的主机上公开端口5438。

事实证明,我的主机是安装了Ubuntu的Azure。最后,我记得在Azure门户的“联网”选项卡下,您有一个“入站端口规则”列表。

我需要打开5438港口。我这么做了然后就开始工作了。根本不是码头配置的问题。

​

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

https://stackoverflow.com/questions/55268486

复制
相关文章

相似问题

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