1

我创建了一个 quarkus 应用程序,可以访问 localhost 上的 postgresql 数据库。创建本机映像后,我尝试使用以下命令运行应用程序:

docker run -i --rm -p 8080:8080 quarkusimage

如果我尝试使用邮递员的方法,我会得到以下结果:

addEmployee Hibernate: select nextval ('quarkus.hibernate_sequence') 2020-06-18 20: 43: 38,214 WARN [io.agr.pool] (Agroal_20041415421) Datasource '': Connection to localhost: 5432 denied. 检查主机名和端口是否正确以及 postmaster 是否接受 TCP/IP 连接。

如果我尝试使用

docker run --net = "host" -i --rm -p 8080:8080 quarkusimage

应用程序访问本地主机上的数据库,但是如果我尝试使用邮递员调用它就无法访问该服务。

我究竟做错了什么?

谢谢

4

1 回答 1

2

这与 docker 网络有关。当一个应用程序在里面运行时docker除非你使用,否则localhost不是主机。localhost --net = "host"

除了使用之外--net = "host",您还可以使用主机的 IP 而不是localhostURL。

至于您提到的 podman 问题,这听起来像是 podman 错误或限制 - 我建议您查阅 podman 文档和/或在 podman 问题跟踪器中打开一个问题。

于 2020-06-19T07:31:16.900 回答