
Docker Volume 權(quán)限管理
由于沒有容器分層文件系統(tǒng)帶來的性能損失,本地文件卷非常適合一些需要高性能數(shù)據(jù)訪問的場景,比如MySQL的數(shù)據(jù)庫文件的存儲。同時(shí)Docker支持通過volume plugin實(shí)現(xiàn)不同類型的數(shù)據(jù)卷,可以更加靈活解決不同應(yīng)用負(fù)載的存儲需求
由于沒有容器分層文件系統(tǒng)帶來的性能損失,本地文件卷非常適合一些需要高性能數(shù)據(jù)訪問的場景,比如MySQL的數(shù)據(jù)庫文件的存儲。同時(shí)Docker支持通過volume plugin實(shí)現(xiàn)不同類型的數(shù)據(jù)卷,可以更加靈活解決不同應(yīng)用負(fù)載的存儲需求
Compose 通過一個(gè)配置文件來管理多個(gè)Docker容器,在配置文件中,所有的容器通過services來定義,然后使用docker-compose腳本來啟動(dòng),停止和重啟應(yīng)用,和應(yīng)用中的服務(wù)以及所有依賴服務(wù)的容器,非常適合組合使用多個(gè)容器進(jìn)行開發(fā)的場景
MongoDB是當(dāng)前最流行的Nosql數(shù)據(jù)庫之一。MongoDB是一個(gè)基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案
服務(wù)節(jié)點(diǎn):三個(gè)manager節(jié)點(diǎn),一個(gè)worker節(jié)點(diǎn)。manager需要占用更多的資源,manager配置盡量高一些。swarm的manager節(jié)點(diǎn)的容錯(cuò)率是 (N-1)/2 。N是manager節(jié)點(diǎn)數(shù)
我們將應(yīng)用以Docker容器的方式部署到服務(wù)器上的時(shí)候,通常需要考慮兩個(gè)方面的的問題:網(wǎng)絡(luò)和存儲。網(wǎng)絡(luò)方面,有些應(yīng)用需要占用端口,而其中一部分應(yīng)用甚至需要對外提供訪問
數(shù)據(jù)卷(Data Volumes):容器內(nèi)數(shù)據(jù)直接映射到本地主機(jī)環(huán)境;如何在容器內(nèi)創(chuàng)建數(shù)據(jù)卷,并且把本地的目錄或文件掛載到容器內(nèi)的數(shù)據(jù)卷中
some-mysql 指定了該容器的名字,my-secret-pw 指定了 root 用戶的密碼,tag 參數(shù)指定了你想要的 MySQL 版本。這樣數(shù)據(jù)是沒有持久化的,所以在啟動(dòng)參數(shù)中需要掛載本地目錄
運(yùn)行鏡像docker run -it gliderlabs/alpine運(yùn)行后可以看到里面有基本的linux文件系統(tǒng),這里不做演示,有興趣者可自行嘗試。接下來,根據(jù)自己的需要可以繼續(xù)安裝php相關(guān)擴(kuò)展包,或者其他linux擴(kuò)展包。
項(xiàng)目中會(huì)用到node做中間層,部署node則是用到了docker,在這里總結(jié)、記錄下部署要點(diǎn)和步驟;關(guān)于docker的介紹和安裝這里就不贅述了,網(wǎng)上也有很多相關(guān)的教程和文章了,需要可自行搜索查看
輸入命令 docker push lilywang711/web 就可將剛才構(gòu)建好的鏡像上傳到docker hub里面,方便等會(huì)兒我們在服務(wù)端拉取鏡像。如果是有多個(gè)項(xiàng)目需要部署,那就按照以上步驟重復(fù)來就行,有多少個(gè)項(xiàng)目就構(gòu)建多少個(gè)鏡像