Docker 中的 PostgreSQL - pg_hba.conf 允许从主机访问容器

2024-03-19

我想在 Docker 容器内运行 PostgreSQL。我正在构建自己的 Docker 镜像,因为我想包含 PostgreSQL 扩展。我应该编辑pg_hba.conf配置文件到:

  1. 允许来自其他容器的访问
  2. 允许来自主机的访问

第一个非常简单:我可以添加一条规则172.17.0.0/16如果我没有记错的话。

但我怎样才能接近第二个呢?当主机连接到容器中的 psql 时,IP(或范围)是什么样的?

备注:我通过以下方式启动容器docker run -p 127.0.0.1:5432:5432,所以理论上我可以允许all in pg_hba.conf因为端口转发只绑定到127.0.0.1。但我更喜欢这种额外的安全级别pg_hba.conf对于我(可能是错误的)通过以下方式运行容器时的情况docker run -p 5432:5432。我希望这是有道理的。

update

实际上,设置范围172.17.0.0/16似乎不正确。例如,我的容器有IP172.18.0.2在我的测试中。根据我迄今为止的调查,对于默认范围或如何配置该范围似乎没有达成共识。


检查您的 docker0 桥接口,在您的情况下它可能是 172.18.0.0/16

在 postgresql.conf 路径中进行更改将与 pg_hba.conf 相同。

监听“*”的地址

然后在 pg_hba.conf 添加规则为

托管所有 172.18.0.0/16 md5。

使用主机 ip 运行 docker : docker run -p :5432:5432 这样,同一 docker n/w 上的其他容器可以从主机连接,但不能从其他主机连接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 中的 PostgreSQL - pg_hba.conf 允许从主机访问容器 的相关文章

随机推荐