首頁  >  問答  >  主體

使用Docker部署java web應用

假設我們我需要的元件有:nginx tomcat webapp redis

我們的作業系統是debain

nginx是一個容器
tomcat webapp是一個容器
redis一個容器
....
然後把這些容器整合,完成部署

疑惑的是連接埠之間如何存取?資料庫檔案在哪裡?各容器之間檔案是否可以共用?

沒有使用過Docker 不知道思想是否正確,求各位大俠解惑

阿神阿神2758 天前564

全部回覆(4)我來回復

  • ringa_lee

    ringa_lee2017-04-24 09:14:08

    1、你完全可以把docker當成虛擬機器來使用,這樣至少使用上不會有什麼學習成本。無非是把虛擬機器裡面的一些操作步驟寫成了Dockerfile讓docker自動配置,更加清晰明了。但有些操作和設定步驟在普通方式的安裝下可能比較難實現,需要藉鏡docker hub上別人的寫法。
    在這種方式下,連接埠之間的存取和檔案共用不成問題;資料庫檔案可以放在容器裡面,也可以透過VOLUME的方式從本機檔案系統掛載到容器裡面。
    2、使用docker來搭建微服務,也就是分成不同的容器來組成一個大服務的內部服務。這種情況下連接埠之間的存取可以透過run時指定--link參數指定某台容器;資料庫檔案透過-v(--volume)的方式指定從本地某個目錄掛載到容器裡面;容器檔案之間的共享透過指定某個資料夾為VOLUME就可以共享,本質上還是把本地檔案系統的目錄掛載到多個容器中而已。
    3、如果真要使用微服務的話,你需要了解一下docker-compose這個技術,幫助你管理各個元件,你只要把容器的run配置寫在yml檔案裡就行了。

    回覆
    0
  • 迷茫

    迷茫2017-04-24 09:14:08

    我的是mysql tomcat fastdfs
    mysql 用-p 映射3306埠
    tomcat 8080 fastdfs 改成8081了
    主機ip為10.0.15.4
    所以在tomcat 專案的配置上是連接到了然後iptables 開放dokcer 容器網段可以存取host

    如果有nginx的話, 直接在nginx轉送到tomcat的8080就行了

    回覆
    0
  • 阿神

    阿神2017-04-24 09:14:08

    docker-compose,docker服務編排.

    回覆
    0
  • 怪我咯

    怪我咯2017-04-24 09:14:08

    如果你用到的所有元件都是為一個應用服務,建議使用Docker編排工具,例如官方提供的Compose。
    容器間的檔案和資料可以共享,透過資料卷掛載即可實現;
    容器間的連接最方便的是通link參數進行連接,這會在兩個容器間建立專用通道,避免了資料連接埠對外開放造成的安全隱患。
    如果你要做的話,還是建議你先把最基礎的東西熟悉一下,挺有意思的。

    回覆
    0
  • 取消回覆