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

时间:2017-11-21 21:38:27

标签: postgresql docker

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

  1. 允许来自其他容器的访问
  2. 允许来自主机的访问
  3. 第一个很简单:如果我没有弄错的话,我可以为172.17.0.0/16添加规则。

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

    备注:我正在通过docker run -p 127.0.0.1:5432:5432启动容器,因此理论上我可以在all中允许pg_hba.conf,因为端口转发仅绑定到127.0.0.1。但我更喜欢pg_hba.conf中的这种额外安全级别,因为我(可能是错误的)通过docker run -p 5432:5432运行容器。我希望这是有道理的。

    更新

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

1 个答案:

答案 0 :(得分:2)

检查您的docker0网桥接口,可能是172.18.0.0/16

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

listenaddress to“*”

然后在pg_hba.conf中添加规则为

主持所有172.18.0.0/16 md5。

使用hostip运行docker:docker run -p:5432:5432 通过这种方式,同一个docker n / w上的其他容器可以连接,也可以连接来自主机,但不能连接其他主机。