使用Docker部署java web應(yīng)用
問題描述
假設(shè)我們我需要的組件有:nginx tomcat webapp redis
我們的操作系統(tǒng)是debain
nginx是一個容器tomcat webapp是一個容器redis一個容器....然后把這些容器整合,完成部署
疑惑的是端口之間如何訪問?數(shù)據(jù)庫文件在哪?各容器之間文件是否可以共享?
沒有使用過Docker 不知道思想是否正確,求各位大俠解惑
問題解答
回答1:1、你完全可以把docker當(dāng)成虛擬機來使用,這樣至少使用上不會有什么學(xué)習(xí)成本。無非是把虛擬機里面的一些操作步驟寫成了Dockerfile讓docker自動配置,更加清晰明了。但是有些操作和配置步驟在普通方式的安裝下可能比較難實現(xiàn),需要借鑒docker hub上別人的寫法。在這種方式下,端口之間的訪問和文件共享不成問題;數(shù)據(jù)庫文件可以放在容器里面,也可以通過VOLUME的方式從本地文件系統(tǒng)掛載到容器里面。2、使用docker來搭建微服務(wù),也就是分成不同的容器來組成一個大服務(wù)的內(nèi)部服務(wù)。這種情況下端口之間的訪問可以通過run時指定--link參數(shù)指定某臺容器;數(shù)據(jù)庫文件通過-v(--volume)的方式指定從本地某個目錄掛載到容器里面;容器文件之間的共享通過指定某個文件夾為VOLUME就可以共享,本質(zhì)上還是把本地文件系統(tǒng)的目錄掛載到多個容器中而已。3、如果真要使用微服務(wù)的話,你需要了解一下docker-compose這個技術(shù),幫助你管理各個組件,你只要把容器的run配置寫在yml文件里就行了。
回答2:我的是mysql tomcat fastdfs mysql 用-p 映射3306端口tomcat 8080 fastdfs 改成8081了 主機ip為10.0.15.4 所以在tomcat項目的配置就是連接10.0.15.4 / 3306 / 8081 就行了, 然后iptables 開放dokcer 容器網(wǎng)段可以訪問host
如果有nginx的話, 直接在nginx轉(zhuǎn)發(fā)到tomcat的8080就行了
回答3:docker-compose,docker服務(wù)編排.
回答4:如果你用到的所有組件都是為一個應(yīng)用服務(wù),建議使用Docker編排工具,如官方提供的Compose。容器間的文件和數(shù)據(jù)可以共享,通過數(shù)據(jù)卷掛載即可實現(xiàn);容器間的連接最方便的是通link參數(shù)進行連接,這會在兩個容器間建立專用通道,避免了數(shù)據(jù)端口對外開放造成的安全隱患。如果你要做的話,還是建議你先把最基礎(chǔ)的東西熟悉一下,挺有意思的。
相關(guān)文章:
1. javascript - sublime快鍵鍵問題2. javascript - immutable配合react提升性能?3. css - 寫頁面遇到個布局問題,求大佬們幫解答,在線等,急!~4. javascript - nodejs關(guān)于進程間發(fā)送句柄的一點疑問5. Apache 已經(jīng)把網(wǎng)站根目錄的改為allow from all了,但是服務(wù)器還是不能訪問?6. 實現(xiàn)bing搜索工具urlAPI提交7. 配置Apache時,添加對PHP的支持時語法錯誤8. vue.js - Vue 如何像Angular.js watch 一樣監(jiān)聽數(shù)據(jù)變化9. javascript - 移動端上不能實現(xiàn)拖拽布局嗎?10. phpstudy8.1支持win11系統(tǒng)嗎?

網(wǎng)公網(wǎng)安備