gpt4 book ai didi

docker - 将在 docker 容器中运行的 tomcat webapp 连接到 mysql

转载 作者:行者123 更新时间:2023-12-01 09:55:10 25 4
gpt4 key购买 nike

我在 centos 主机上运行 mysql 服务器,我想在同一主机的 docker 容器内的 tomcat 中部署我的 war 。知道如何从容器内部连接 ​​mysql。

最佳答案

以下是您可以从应用程序 (tomcat) 连接到数据库 (mysql) 的操作。
有两种方法可以做到这一点

  • 通过使用链接
  • 通过向tomcat应用程序提供db的IP地址手动方式

  • 示例 1(链接)
  • 启动你的 mysql 容器:

  • "docker run --name db -e MYSQL_ROOT_PASSWORD="xxxx" -e MYSQL_DATABASE="xxxx" -d mysql"


  • 您现在需要构建和运行应用程序容器,它必须
    知道数据库实例在哪里。你必须弄清楚你在哪里
    在您的应用程序中提供指向数据库的链接。它可以在代码中
    或在属性文件中。您可以使用 volume 将此文件挂载到
    应用程序容器。您还可以在
    飞行,因为您可以在主机系统上访问它们。这个
    是这样做的一个例子:docker

  • docker run -d -p 8080:8080 --name app --link db:db -v $PWD/webapp:/var/lib/tomcat7/webapps/ app


  • 在这里,我们正在使用我正在安装 webapp 文件夹的图像应用程序
    从我的 docker 基本文件夹。这个文件夹有我的代码
    推送到 tomcat 的 webapp 文件夹。我也在推
    属性文件到容器上的适当位置
    mysql 连接是这样提到的:
    "jdbc.url=jdbc:mysql://db:3306/dbname"。我们正在映射 8080 端口
    容器到主机的 8080 端口。我们正在映射容器
    db 与容器应用程序。这会在/etc/hosts 文件中创建一个条目 - “db
    ipname”。所以两个容器可以相互通信,即使
    我们重新启动 db 容器(它会更改 IP)。链接会更新
    具有新 IP 的主机条目。

  • 示例 2:
  • 启动数据库容器
  • 使用此“docker inspect -f '{{ .NetworkSettings.IPAddress }}' container-name/ID”获取数据库容器的 IP
  • 使用卷来启动应用程序容器,您可以在其中编辑主机上的 jdbc url。
  • 将 IP 更改为 db 容器的 IP,这样应该可以建立连接


  • 如果要使用Host的mysql

    docker run -d --net=host --name app image command



    如果您需要任何进一步的解释,请告诉我。
    您可以浏览有关卷的主题、来自 docker 文档的链接: https://docs.docker.com/

    关于docker - 将在 docker 容器中运行的 tomcat webapp 连接到 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29679661/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com