将docker容器连接到本地工作台MySQL DB

您好我有我的web应用程序运行在我的本地计算机上,并连接到mysql工作台,我现在试图dockerize webapp。 我似乎无法得到它连接到我的本地开发机器上的数据库(我正在运行Docker的Windows),任何人都可以告诉我,我会如何去做这件事。 这是我到目前为止。

`docker run -it -e "CATALINA_OPTS=-Dspring.profiles.active=dev -DPARAM1=DEV" -p 8080:8080 -p 8005:8005 -p 8009:8009 -p 3306:3306 --add-host=docker:192.168.1.7 -v C:\myapp\trunk\target\myapp.war:/usr/local/tomcat/webapps/myapp.war --name waitapp tomcat:8.0.38-jre8` 

几秒钟之后,我运行docker ps -a

 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2a1764dd9640 tomcat:8.0.38-jre8 "catalina.sh run" 2 minutes ago Up 2 minutes 0.0.0.0:3306->3306/tcp, 0.0.0.0:8005->8005/tcp, 0.0.0.0:8009->8009/tcp, 0.0.0.0:8080->8080/tcp waitapp 

容器似乎在运行,但我得到一个404没有find当我尝试其余的请求,这是一样的,当我从内部使用内置的tomcat服务器的spring工具套件运行。

注:我不想运行一个单独的mysql容器,并通过networking链接两个,我只想尝试让我新创build的docker应用程序连接到我的本地数据库MySQL。

正如在这篇文章中提到的 ,你可以尝试2件事情:

  1. 添加网关,并从容器中使用它,如

dockernetworking创build-d桥 – 子网192.168.0.0/24 – 网关192.168.0.1docker网

  1. 运行代理(ngnix?)容器,它将在需要时将调用路由到数据库

这个答案也显示如何获得docker集装箱内的主机IP。