Connect docker container to local workbench MySQL

2019-02-10 05:33发布

HI I have my web app running on my local machine and connected to mysql workbench, I am now trying to dockerize the webapp. I can't seem to get it to connect to the DB on my local dev machine (I am running docker for windows), can anyone tell me how I would go about this. Here is what I have so far.

`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`

after a few second, I run 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

The container seems to be running, but I get a 404 Not found when I try the rest request, this is the same as I do when running from inside spring tool suite using built in tomcat server.

NOTE I don't want to run a separate mysql container and link the two over a network, I just want to try get my newly created docker app to connect to my local DB MySQL.

1条回答
成全新的幸福
2楼-- · 2019-02-10 06:03

As mentioned on this post, you can try 2 things:

  1. Add gateway and use it from containers, like

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

  1. In addition to your app container, run proxy (ngnix?) container, which will rout the calls to DB when required

This answer also show how can you obtain the host IP inside the docker container.

查看更多
登录 后发表回答