docker部署服務實現文件上傳到本地問題解決


本周前端提出需要一個視頻上傳的接口,由於以前的圖片資源都是上傳到mongo庫存儲,如果再把視頻文件上傳到mongo庫中似乎不太合適。經過一番討論,決定把資源文件統一上傳到本地服務器。但是該服務是通過docker自動化構建,所以就引發一下的兩個問題:

問題一:限制docker的啟動節點(存儲集群)

解決方案

簡單來說就是給每一個node打標簽。

docker node update --label-add tag=storage worker1

上面這句話的意思是master給worker1的docker打上了功能是nginx的標簽。tag和storage是你可以自己定的鍵值對。然后在運行docker service create 的時候,指定–constraint參數即可

docker service create --name my_nginx --constraint 'node.labels.tag == storage' nginx

這樣nginx的容器就會在worker1上啟動,而不會在其他node上啟動了。

問題二:掛載物理機目錄

解決方案

掛載有兩種方式:(1)使用-v (2)使用mount

但是他們有一定的區別

使用-v /tmp/a:/var/a 時。如果宿主機上沒有這個文件/tmp/a,也會自動創建,但是如果使用mount時,宿主機中沒有這個文件會報錯找不到這個文件,並創建失敗。

所以針對項目中的需求,mount是我想要的解決方式。

 --mount type=bind,source="$(pwd)"/target,target=/app 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM