我想在 Docker 容器内运行 PostgreSQL。我正在构建自己的 Docker 镜像,因为我想包含 PostgreSQL 扩展。我应该编辑pg_hba.conf
配置文件到:
- 允许来自其他容器的访问
- 允许来自主机的访问
第一个非常简单:我可以添加一条规则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(使用前将#替换为@)