在Java中使用Docker环境variables

我正在创build一个位于Docker容器内的Spring Boot应用程序。 在与Spring Boot容器相同的服务器上,是第二个Docker容器,它包含一个MariaDB应用程序必须能够访问的MariaDB。

当运行MariaDB容器和主机上的Spring Boot应用程序时,应用程序通过“jdbc:mariadb:// localhost:3306 / fi?user = username&password = somepassword”访问数据库。 我明白,当应用程序部署为一个容器,它不能这样做。 我通过在run语句中包含“–link mariadb:db”来成功“链接”两个容器,其中mariadb是MariaDB容器的名称。

当应用程序容器正在运行时,我可以通过运行命令“ping mariadb”来ping MariaDB容器。 我的问题是,我将如何使用我的Java文件内的mariadb环境variables调用mariadb容器中的数据库?

谢谢。

这里的问题是你在连接url中引用localhost而不是mariadb

当你链接一个docker容器时,它会自动获得在/etc/hosts添加的正确的条目