【发布时间】:2019-08-11 14:28:06
【问题描述】:
我有一个使用官方 Postgres docker 镜像在 centos 机器上运行的 docker 容器,它无法远程连接。 sudo docker ps | grep postgres 给了
492192ff9170 postgres "/docker-entrypoint.s" 2 年前 18 小时 0.0.0.0:5432->5432/tcp postgres
当我在另一台机器上尝试psql -h <server domain name> -p 5432 -U postgres 时,它只是打印出来了
psql:无法连接到服务器:操作超时
服务器是否在主机 [域名]([IP 地址])上运行并接受 端口 5432 上的 TCP/IP 连接?
我在远程服务器上做了sudo iptables -S | grep 5432,它打印出来了
-A 码头工人 -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --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在本地成功连接到实例,但仍然无法远程访问它
有人能解释一下这个问题吗?非常感谢。
【问题讨论】:
标签: postgresql docker centos