我创建了一个quarkus应用程序,可以访问localhost上的postgresql数据库。创建本机映像后,我尝试使用以下命令运行应用程序:
docker run -i --rm -p 8080:8080 quarkusimage
如果我尝试使用邮递员的方法,我会得到以下结果:
addEmployee 休眠: 选择 nextval('quarkus.hibernate_sequence') 2020-06-18 20:43:38,214警告[io.agr.pool](Agroal_20041415421)数据源'':连接到本地主机:5432被拒绝。检查主机名和端口是否正确以及邮局主管正在接受TCP / IP连接。
如果我尝试运行该应用程序
docker run --net =“ host” -i --rm -p 8080:8080 quarkusimage
应用程序访问本地主机上的数据库,但是如果我尝试邮递员呼叫,它将无法访问该服务。
我在做什么错了?
谢谢
答案 0 :(得分:2)
这与docker联网有关。当在docker
内部运行应用程序时,不是主机localhost
,除非您使用localhost
。
除了使用--net = "host"
,您还可以使用主机IP代替URL中的--net = "host"
。
关于您提到的podman问题,这听起来像是podman错误或局限性-我建议您查阅podman文档并/或在podman问题跟踪器中打开问题。