我创建了一个 quarkus 应用程序,可以访问 localhost 上的 postgresql 数据库。创建本机映像后,我尝试使用以下命令运行应用程序:
docker run -i --rm -p 8080:8080 quarkusimage
如果我尝试使用邮递员的方法,我会得到以下结果:
添加员工 冬眠: 选择 下一页 ('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
应用程序访问本地主机上的数据库,但是如果我尝试邮递员调用,它无法访问该服务。
我做错了什么?
谢谢
这与 docker 网络有关。当应用程序在docker
中运行时,除非您使用--net = "host"
localhost
,否则localhost
不是主机。
除了使用--net = "host"
之外,您还可以使用主机的 IP 而不是 URL 中的localhost
。
至于你提到的podman问题,这听起来像是一个podman错误或限制 - 我建议你查阅podman文档和/或在podman问题跟踪器中打开一个问题。