我正在尝试使用PostGres作为数据库运行rundeck的docker映像。
我遇到的问题是将本地postgres安装映射到docker rundeck映像。 postgres端口在5432上运行,并已使用netstat
确认该端口已打开并且正在侦听。 Rundeck的端口需要在4440上运行。
我尝试了以下命令:
docker run -p 127.0.0.1:4440:4440 -e RUNDECK_DATABASE_URL=jdbc:postgresql://localhost/rundeck -e RUNDECK_DATABASE_DRIVER=org.postgresql.Driver -e RUNDECK_DATABASE_USERNAME=xxx -e RUNDECK_DATABASE_PASSWORD=xxx --name test-rundeck -t rundeck/rundeck:3.0.19
但失败并显示错误:Connection to 127.0.0.1:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP
我猜是因为内部5432端口未映射到docker容器端口5432?
我尝试使用-p 127.0.0.1:5432:5432
映射端口,但是失败并显示错误:
Error starting userland proxy: listen tcp 127.0.0.1:5432: bind: address already in use
在这一点上,我可能只想同时将PostGres和Rundeck作为docker映像运行,但是我想解决此问题。
关于如何将本地PostGres映射到Docker的Rundeck的任何想法?
答案 0 :(得分:0)
找到了答案。
必须编辑pg_hba.conf文件以允许docker0 ip地址通过。
host all all 172.23.0.0/16 md5