将 docker 容器中的 tomcat webapp 运行 连接到 mysql
connecting tomcat webapp running in docker container to mysql
我在 centos 主机中有 mysql 服务器 运行,我想在同一主机的 docker 容器内的 tomcat 中部署我的 war。知道如何从容器内部连接 mysql。
这是从应用程序 (tomcat) 连接到数据库 (mysql) 的方法。
有两种方法可以做到这一点
- 通过使用 links
- 通过向 tomcat 应用程序提供数据库的 IP 地址手动方式
示例 1(链接)
- 启动您的 mysql 容器:
"docker run --name db -e MYSQL_ROOT_PASSWORD="xxxx" -e
MYSQL_DATABASE="xxxx" -d mysql"
- 您现在需要构建 运行 应用程序容器,它必须
知道数据库实例在哪里。你将不得不弄清楚你在哪里
将 link 提供给应用程序中的数据库。它可以在代码中
或者在 属性 文件中。您可以使用 volume 将此文件挂载到
应用程序容器。您还可以在
fly 因为你可以在主机系统上访问它们。这个
是这样做的一个例子:docker
docker run -d -p 8080:8080 --name app --link db:db -v
$PWD/webapp:/var/lib/tomcat7/webapps/ app
- 这里我们使用图像应用程序,我正在安装 webapp 文件夹
来自我的 docker 基本文件夹。这个文件夹有我的代码,我是
推送到 tomcat 的 webapp 文件夹。我也在推动
properties 文件到容器上的适当位置
mysql 连接是这样提到的:
"jdbc.url=jdbc:mysql://db:3306/dbname"。我们正在映射的8080端口
容器到宿主机的8080端口。我们正在映射容器
带有容器应用程序的数据库。这会在 /etc/hosts 文件上创建一个条目 - “db
ipname”。所以即使
我们重新启动 db 容器(这会更改 IP)。链接会更新
具有新 IP 的主机条目。
示例 2:
- 上传数据库容器
- 使用这个"docker inspect -f '{{ .NetworkSettings.IPAddress }}' container-name/ID"
获取数据库容器的IP
- 在应用程序容器中添加卷,您可以在主机上编辑 jdbc url。
- 将IP改为db容器的IP,这样应该可以建立连接
如果你想使用主机的mysql
docker run -d --net=host --name app image command
如果您需要任何进一步的解释,请告诉我。
您可以浏览有关卷的主题,links 来自 docker 文档:https://docs.docker.com/
我在 centos 主机中有 mysql 服务器 运行,我想在同一主机的 docker 容器内的 tomcat 中部署我的 war。知道如何从容器内部连接 mysql。
这是从应用程序 (tomcat) 连接到数据库 (mysql) 的方法。 有两种方法可以做到这一点
- 通过使用 links
- 通过向 tomcat 应用程序提供数据库的 IP 地址手动方式
示例 1(链接)
- 启动您的 mysql 容器:
"docker run --name db -e MYSQL_ROOT_PASSWORD="xxxx" -e MYSQL_DATABASE="xxxx" -d mysql"
- 您现在需要构建 运行 应用程序容器,它必须 知道数据库实例在哪里。你将不得不弄清楚你在哪里 将 link 提供给应用程序中的数据库。它可以在代码中 或者在 属性 文件中。您可以使用 volume 将此文件挂载到 应用程序容器。您还可以在 fly 因为你可以在主机系统上访问它们。这个 是这样做的一个例子:docker
docker run -d -p 8080:8080 --name app --link db:db -v $PWD/webapp:/var/lib/tomcat7/webapps/ app
- 这里我们使用图像应用程序,我正在安装 webapp 文件夹 来自我的 docker 基本文件夹。这个文件夹有我的代码,我是 推送到 tomcat 的 webapp 文件夹。我也在推动 properties 文件到容器上的适当位置 mysql 连接是这样提到的: "jdbc.url=jdbc:mysql://db:3306/dbname"。我们正在映射的8080端口 容器到宿主机的8080端口。我们正在映射容器 带有容器应用程序的数据库。这会在 /etc/hosts 文件上创建一个条目 - “db ipname”。所以即使 我们重新启动 db 容器(这会更改 IP)。链接会更新 具有新 IP 的主机条目。
示例 2:
- 上传数据库容器
- 使用这个"docker inspect -f '{{ .NetworkSettings.IPAddress }}' container-name/ID" 获取数据库容器的IP
- 在应用程序容器中添加卷,您可以在主机上编辑 jdbc url。
- 将IP改为db容器的IP,这样应该可以建立连接
如果你想使用主机的mysql
docker run -d --net=host --name app image command
如果您需要任何进一步的解释,请告诉我。 您可以浏览有关卷的主题,links 来自 docker 文档:https://docs.docker.com/