2016-12-15 72 views
4

HI我有我的web應用程序在本地機器上運行並連接到mysql工作臺,我現在試圖dockerize webapp。我似乎無法得到它連接到我的本地開發機器上的數據庫(我正在運行docker for windows),誰能告訴我如何去做這件事。這是我到目前爲止。將Docker容器連接到本地工作臺MySQL DB

`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未發現當我嘗試其他的要求,這是一樣的我使用內置的tomcat服務器從Spring工具套件內部運行。

注意 我不想單獨運行mysql的容器,並通過網絡把兩者聯繫起來,我只是想嘗試讓我的新創建碼頭工人的應用程序連接到我的本地數據庫的MySQL。

+0

*您連接到MySQL Workbench *的含義是什麼?你也可以提供一段代碼,或者你如何試圖訪問容器?據我所見,你正在一個容器中運行應用程序,你如何期望應用程序在網絡之外使用一個數據庫?你在同一個容器上運行MySQL數據庫嗎?你想使用MySQL Workbench連接到容器內的數據庫嗎? – ReynierPM

+0

好吧,我會嘗試更好地解釋,我在我的戴爾筆記本電腦上運行MySQL Workbench,當我通過SpringToolSuite IDE運行時,彈簧應用程序連接到它。現在我正在使用上面的docker run命令運行一個tomcat容器,並在該容器中安裝我的war,但希望它仍連接到筆記本電腦上的MySQL數據庫。我怎樣才能實現這一點,而不會損壞/旋轉MySQL容器。我想讓容器與我的主機進行通話。 – Gman

+0

我不知道如何做到這一點,但我認爲這是可能的。也許[this](https://docs.docker.com/engine/userguide/networking/default_network/container-communication/)和[this](https://docs.docker.com/engine/userguide/networking/)可以幫助您瞭解網絡在Docker中的工作原理,並從那裏您可以實現您的需求。 – ReynierPM

回答

0

正如上this post提到的,你可以嘗試兩件事情:

  1. 添加網關,並用它從容器中,像

泊塢窗網創建-d橋--subnet 192.168.0.0/24 - 網關192.168.0.1 dockernet

  1. 除了您的應用包含呃,運行代理(ngnix?)容器中,在需要時

This answer也告訴你如何可以獲取主機的IP泊塢窗容器內將擊潰到DB的調用。

相關問題