6

嗨,我的 Web 应用程序在本地计算机上运行并连接到Mysql 工作台,我现在正在尝试对 Web 应用程序进行 docker 化。我似乎无法让它连接到我的本地开发机器上的数据库(我正在运行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 应用程序连接到我的本地 DB MySQL。

4

1 回答 1

0

本文所述,您可以尝试两件事:

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

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

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

此答案还显示了如何获取 docker 容器内的主机 IP。

于 2017-02-12T07:49:49.830 回答