java - Docker 外部数据库映射
问题描述
我已将“知识”BI 工具克隆到我的本地 cetnos 7 服务器并成功运行了 docker 容器。我的挑战是连接到主机中的 mariadb 数据库!我希望知识容器能够访问主机中的该数据库。下面是我的 server.xml 文件,用于知识使用的连接配置..
<GlobalNamingResources>
<Resource name="jdbc/datasource" auth="Container"
type="javax.sql.DataSource"
driverClassName="org.mariadb.jdbc.Driver"
url="jdbc:mariadb://ip-addr:3306/datasource"
username="beberu"
password="***********"
maxActive="20" maxIdle="10"
maxWait="-1"/>
<!-- KNOWAGE -->
<Resource auth="Container" driverClassName="org.mariadb.jdbc.Driver" maxActive="20" maxIdle="10" maxWait="-1" name="jdbc/knowage" type="javax.sql.DataSource" url="jdbc:mysql://1$
<Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="$
<ResourceLink global="jdbc/datasource" name="jdbc/datasource" type="javax.sql.DataSource"/>
</GlobalNamingResources>
解决方案
您必须使用docker0
接口的 IP 地址代替 10.66.110.7。
您可以使用此命令获取 IP 地址。
$ ip addr show docker0
在结果中使用 ip 之后,inet。
推荐阅读
- javascript - 在 React 钩子中调用函数是可能的
- javascript - 从 e.target.parentNode 获取特定 div 后,我们如何访问它的某些属性/属性
- .net - 使用 dot Net MS Graph SDK 获取自己的用户信息时出现错误代码 406?
- python - 在 Python 中使用 get 和 requests 时如何防止下载空的 pdf 文件?
- python - 从循环创建数据集
- javascript - 如何在 Python Eel 中访问本地文件?
- java - byte byteVar = 100 有效,但 int intVar = 100L 会导致编译错误。为什么?
- c - 从标准输入读取任意数量的字符,直到在 C 中按 enter
- c - 如何在uart中读取数据并同时执行一个循环?
- r - 检查字符串中的多个条件并返回二进制指示符