亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Docker網站目錄是掛載方式好還是拷貝進容器好?

Docker網站目錄是掛載方式好還是拷貝進容器好?

慕斯王 2018-08-30 18:23:20
最近在研究docker和持續集成的相關知識,LNMP情況下,我把php和nginx分別單獨做到不同的鏡像里,目前是通過掛載網站目錄到宿主機的方法。如果做持續集成,是通過掛載網站目錄的方式好還是把網站目錄COPY進容器好呢?在持續集成的情況下,是不是如果是掛載,每次提交后只用更新宿主機網站目錄就行了,如果COPY,每次都要重構nginx容器?
查看完整描述

2 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

正好這個問題我也想過很久,其實有幾種方案,各有利弊:

  1. 把nginx和php作為兩個容器,代碼另外放在volume,分別供php和nginx兩者掛載

    • 好處:代碼更新靈活

    • 壞處:感覺這作為一個服務來說很“山寨”(可以和Java/NodeJS的服務類比一下);另外,如果你用到了composer,依賴部分無法在制作鏡像中過程中自動化安裝

  2. 把nginx作為一個容器,php和代碼放在另一個容器,但其中代碼目錄也需要供nginx掛載

    • 好處:相比1,可以把composer放入PHP容器中,制作鏡像時幫你安裝依賴

    • 壞處:作為服務依然很“山寨”

  3. 把nginx、php和代碼全放入同一個容器

    • 好處:更符合微服務的定義,整體對外構成一個服務;nginx和php之間可以直接用unix socket通信

    • 壞處:除了靈活性之外,不太符合Docker官方一個容器只跑一個服務的建議

個人在開發、集成時都是用了方案2,如果以后用到swarm可能會在生產環境用方案3

聽你的方案,好像是想把nginx和代碼放入一個容器,把php單獨放入另一個容器?這種方案好像并沒有什么意義,上述2、3的好處它都沒有。


查看完整回答
反對 回復 2018-09-24
?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

樓上已經給了三個方式了,我來說說實際大規模集群中的吧
在大規模集群中,不關心服務內部是怎么做的,所以更期望一個整體對外提供服務,至于怎么提供,這不屬于集群調度職責
所以,在大規模集群中,只有第三個方案:將代碼,代碼運行環境放入集群中
并且,在大規模集群中,前面都是有負載均衡網關的,所以容器中根本不會有Nginx

查看完整回答
反對 回復 2018-09-24
  • 2 回答
  • 0 關注
  • 1166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號