gpt4 book ai didi

linux - 如何使 postgresql 数据库可从 postgres docker 容器外部连接?

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:33 27 4
gpt4 key购买 nike

我正在使用来自官方 docker hub 的 postgres:9.3 docker 容器

https://hub.docker.com/_/postgres/

使用命令启动数据库容器

docker run -d -e POSTGRES_PASSWORD=mysecretpassword -p 25432:5432 --name osm-database osm-database

并使用来自另一个容器(osm-updater)的 docker 链接连接到它

docker run -d --link osm-database --name osm-updater osm-updater

现在我发现我无法从 osm-updater 容器 psql 到数据库,出现错误

psql: could not connect to server: Connection refused
Is the server running on host "172.17.0.12" and accepting
TCP/IP connections on port 5432?

所以我探索了 osm-database 容器中的网络套接字

netstat -tulpn

结果

tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN

显示在 osm-database 容器中,postgres 数据库只能连接到 127.0.0.1,这是错误的?应该是 0.0.0.0:5432 ?

这样我就无法使用类似命令从 osm-update 连接到 osm-database

psql -U postgres -p 5432 -h 172.17.0.12

172.17.0.12是通过(docker检查命令)获取的ip_address

我该如何解决这个问题?如何更改网络套接字的“本地地址”列

最佳答案

你实际上想使用机器的eth0。如果您使用的是 Linux,您可以通过 ifconfig 获取它并连接到端口 25432 上的数据库,因为这是您要公开的端口。

关于linux - 如何使 postgresql 数据库可从 postgres docker 容器外部连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32719552/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com