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

时间:2016-12-15 16:02:29

标签: mysql docker docker-for-windows docker-desktop

我有我的网络应用程序在我的本地计算机上运行并连接到 Mysql工作台,我现在正在尝试将webapp停靠。我似乎无法连接到我的本地开发机器上的数据库(我正在运行 Docker Desktop for 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 Not found ,这与使用内置tomcat服务器从spring工具套件内部运行时的情况相同

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

1 个答案:

答案 0 :(得分:0)

this post所述,您可以尝试两件事:

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

    docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 dockernet

    1. 除了您的应用容器外,还运行代理(ngnix?)容器,该容器会在需要时将调用路由到数据库
    2. This answer还显示如何在docker容器中获取主机IP。