无法通过PHP连接到Docker中的PostgreSQL

我不能用PHP代码连接到PostgreSQL。 我的PostgreSQL是docker集装箱。 我得到一个IP:

docker inspect toshi_db_1 

我如何连接:

 $dbconn = pg_connect("host=172.17.0.2 port=5432 dbname=toshi_development")or die("Could not connect"); 

错误:警告:pg_connect():无法连接到PostgreSQL服务器:无法连接到服务器:连接超时(0x0000274C / 10060)服务器是否运行在主机“172.17.0.2”上并接受端口5432上的TCP / IP连接?

我以为在使用listen_addressconfiguration参数的PostgreSQL.conf中可能会出现问题,但它允许所有的连接,所以我不知道问题出在哪里。

更新:我自己修复它,只是试图暴露docker-compose文件中的错误端口。

我今天也遇到同样的情况。 解决scheme是用容器的名称replacelocalhost端口。 喜欢:

 $dbconn = pg_connect("host=toshi_db_1 port=5432 dbname=toshi_development")or die("Could not connect"); 

不知道是否应该与IP相同。 但IP不会改变吗?

所以,对于看到这个post的其他人:请记住,127.0.0.1总是指向当前的容器。 所以你必须用你的容器名称replace“localhost”部分。