为什么我不能连接到本地主机:5432?
猫你的容器
/etc/hosts
$ sudo docker exec -it [container] cat /etc/hosts
对于docker网络
bridge,默认情况下,
localhost内部指向容器本身(Docker默认网桥网络)。然后,您无需
5432在容器中进行监听:
$ sudo docker exec [container] nc -v -z localhost 5432
解决方案1.如果要在配置xml中对“ localhost:5432”进行硬编码,最简单的方法是使用选项“ –net = host”创建容器:
$ sudo docker run --net=host -it ...
解决方案2.
localhost在容器内更改您的Docker主机IP
获取您的 Docker主机IP :
$ sudo docker inspect -f '{{ .NetworkSettings.Gateway }}'192.168.5.1
输入您的容器:
$ sudo docker exec -it [container] /bin/bash
编辑文件
/etc/hosts
以将localhost指向 docker host ip :$ sudo vim /etc/hosts
192.168.5.1 localhost
解决方案3.修改数据库配置文件以使用别名代替
localhost:
connectionURL="jdbc:postgresql://DB_ALIAS/admin?stringtype=unspecified"
然后将添加
DB_ALIAS到容器的主机:
$ sudo docker run --add-host DB_ALIAS:192.168.5.1 -it [image] ...



