【问题标题】:Using Docker Environment Variable inside of Java在 Java 中使用 Docker 环境变量
【发布时间】:2017-12-01 01:38:26
【问题描述】:

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

在主机上运行 MariaDB 容器和 Spring Boot 应用程序时,应用程序通过“jdbc:mariadb://localhost:3306/fi?user=username&password=somepassword”获得对数据库的访问权限。我了解当应用程序部署为容器时,不能以这种方式完成。我已经通过在运行语句中包含“--link mariadb:db”成功地“链接”了两个容器,其中 mariadb 是 MariaDB 容器的名称。

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

谢谢。

【问题讨论】:

    标签: docker spring-boot mariadb


    【解决方案1】:

    这里的问题是您在连接网址中引用了localhost 而不是mariadb

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

    【讨论】:

    • 所以连接url应该是jdbc:mariadb://mariadb:3306/fi?user=username&password=somePassword ??
    • 是的,如果链接名称是 mariadb
    • @dFrancisco 太棒了!您可以点击答案左侧的复选框将答案标记为正确
    猜你喜欢
    • 2016-02-20
    • 1970-01-01
    • 2020-12-07
    • 2019-07-26
    • 2015-09-13
    • 2020-11-12
    • 2016-07-16
    相关资源
    最近更新 更多