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

Docker-pg_hba.conf中的PostgreSQL允许从主机访问容器,postgresql,docker,Postgresql,Docker,我想在Docker容器中运行PostgreSQL。我正在构建自己的Docker映像,因为我希望包含PostgreSQL扩展。我应该将pg_hba.conf配置文件编辑为: 允许来自其他容器的访问 允许从主机发起的访问 第一个很简单:如果我没有弄错的话,我可以为172.17.0.0/16添加一条规则 但是我怎样才能接近第二个呢?当主机连接到容器中的psql时,IP(或范围)是什么样子的 备注:我正在通过docker run-p 127.0.0.1:5432:5432启动容器,因此理论上我可以允许p

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

  • 允许来自其他容器的访问
  • 允许从主机发起的访问
  • 第一个很简单:如果我没有弄错的话,我可以为
    172.17.0.0/16添加一条规则

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

    备注:我正在通过
    docker run-p 127.0.0.1:5432:5432
    启动容器,因此理论上我可以允许
    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
    。根据我到目前为止的调查,似乎对默认范围或如何配置该范围没有达成一致意见。

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

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

    在“*”中列出姓名

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

    托管所有172.18.0.0/16 md5

    使用hostip运行docker:docker run-p:5432:5432
    这样,同一docker n/w上的其他集装箱船也可以从主机连接,但不能从其他主机连接。

    您能解释一下为什么在pg_hba.conf中设置
    172.18.0.0/32
    ?为什么不
    172.18.0.0/16
    ?很抱歉,它的拼写正确值是172.18.0.0/16/32,请给出单个容器ip。