您已经指定了
0.0.0.0
作为要连接的IP地址,这没有意义。
是“任何地址”。您可能看到postgres正在0.0.0.0上收听的消息,这就是您从中获得该消息的原因。在侦听0.0.0.0的服务器上下文中,这意味着它正在侦听所有ipv4接口。看见
https://en.wikipedia.org/wiki/0.0.0.0
在Docker中,如果有多个命名容器连接到同一个用户定义的网络,则可以使用Docker附带的内置服务发现机制。
docker network create mynet
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=password --net mynet --name database postgres
docker run --rm -p 5000:5000 --net mynet flaskapp:1
请确保更改要连接到的代码
postgres://postgres:password@database:5432
而不是
postgres://postgres:password@0.0.0.0:5432