PSQL Shell或我的jdbc-url都无法在应用程序启动时找到我的Docker容器数据库

问题描述

我正在尝试遵循SpringBoot教程 here

最后一步是使用.yml文件将我的逻辑代码桥接到容器化数据库。启动时,应用程序在以下位置找不到我的容器化数据库

jdbc-url:jdbc:postgresql:// localhost:5432 / demodb

我收到此错误

致命:数据库“ demodb”不存在

使用psql shell创建数据库“ demodb”是避免此错误的唯一方法,但是,

我希望能够使用容器的数据库,并且我相信psql shell将对容器内部创建的内容具有可见性。 The screenshot here proves otherwise (Left is the shell). (Right is the container)

所有登录名(对于容器和外壳)都是相同的,但是在命令提示符下输入psql -U postgres会导致我的本地主机psql

当我使用\ conninfo时,我的外壳数据库通过端口“ 5432”连接到“ localhost”(地址“ :: 1”),而容器数据库通过端口“ / var / run / postgresql”中的套接字连接“ 5432”。

将我的jdbc更改为 jdbc-url:jdbc:postgresql:// var / run / postgresql:5432 / demodb 也不起作用。

是因为我的计算机上有两个不同的psql吗?

解决方法

作为我自己的问题的答案,那些想拥有一个jdbc url连接到docker容器数据库的人,必须确保停止任何Postgresql 12服务。

最初,我的连接在我的容器IP上被拒绝,但是我可以通过终端连接。我的postgres dbms也位于本地主机。