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

问题描述 投票:6回答:1

我有我的网络应用程序在我的本地机器上运行并连接到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`

几秒钟后,我跑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 not,这与使用内置tomcat服务器从spring工具套件内部运行时相同。

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

mysql docker docker-for-windows docker-desktop
1个回答
0
投票

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

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

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

  1. 除了你的app容器,运行proxy(nginx?)容器,它会在需要时将调用路由到DB

This answer还展示了如何在docker容器中获取主机IP。

© www.soinside.com 2019 - 2024. All rights reserved.