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

Gma*_*man 6 mysql docker docker-for-windows docker-desktop

我有我的网络应用程序在我的本地机器上运行并连接到Mysql工作台,我现在正在尝试将webapp停靠.我似乎无法连接到我的本地开发机器上的数据库(我正在运行适用于Windows的Docker Desktop),有人能告诉我如何进行此操作吗?这是我到目前为止所拥有的.

`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`
Run Code Online (Sandbox Code Playgroud)

几秒钟后,我跑了 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
Run Code Online (Sandbox Code Playgroud)

容器似乎正在运行,但是当我尝试其余请求时,我得到404 Not not,这与使用内置tomcat服务器从spring工具套件内部运行时相同.

注意 我不想运行单独的mysql容器并通过网络链接这两个容器,我只是想尝试让我新创建的docker应用程序连接到我的本地数据库MySQL.

evg*_*nyl 0

正如这篇文章中提到的,您可以尝试以下两件事:

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

docker网络创建-d网桥--子网192.168.0.0/24--网关192.168.0.1

  1. 除了您的应用程序容器之外,还运行代理(ngnix?)容器,该容器将在需要时将调用路由到数据库

这个答案还展示了如何获取 docker 容器内的主机 IP。