Docker基礎(chǔ):數(shù)據(jù)卷技術(shù)介紹

今天給大家簡單聊聊Docker中的數(shù)據(jù)卷知識。
Docker數(shù)據(jù)管理



大家在生產(chǎn)環(huán)境使用Docker部署項目的時候,基本都需要進(jìn)行數(shù)據(jù)持久化、或多個容器間進(jìn)行數(shù)據(jù)共享,這個就需要容器的數(shù)據(jù)管理來進(jìn)行操作。
1.2 Docker數(shù)據(jù)持久化
Docker數(shù)據(jù)持久化就是容器中的數(shù)據(jù)不會隨著容器的結(jié)束而隨之結(jié)束,在Docker中如果需要實現(xiàn)數(shù)據(jù)的持久化,前提把數(shù)據(jù)從Docker容器掛載到宿主主機(jī)上去。
1.2 容器中數(shù)據(jù)管理的方式
數(shù)據(jù)卷(Data Volumes):容器內(nèi)的數(shù)據(jù)直接映射到宿主主機(jī)環(huán)境
數(shù)據(jù)卷容器(Data Volume Containers):使用特定容器維護(hù)數(shù)據(jù)卷
2、數(shù)據(jù)卷的介紹
數(shù)據(jù)卷是一個可供容器內(nèi)部使用的特殊目錄,它將宿主主機(jī)的操作系統(tǒng)目錄直接映射進(jìn)容器內(nèi),類似于Linux系統(tǒng)中的 mount 操作。
2.1 數(shù)據(jù)卷作用
容器的持久化、容器間繼承 + 共享數(shù)據(jù)
2.2 卷的概念
本質(zhì)就是目錄或文件,存在于一個或多個容器中,由docker掛載到容器中,但不屬于聯(lián)合文件系統(tǒng),因此能夠繞過合文件系統(tǒng)提供一些用于持續(xù)存儲或共享數(shù)據(jù)的特性。卷的目的就是實現(xiàn)數(shù)據(jù)的持久化,完全獨立于容器的生存周期,因此Docker不會在容器刪除時同時刪除其掛載的數(shù)據(jù)卷。
2.3 數(shù)據(jù)卷的特點
數(shù)據(jù)卷可以在容器之間實現(xiàn)共享和重用,容器間傳遞數(shù)據(jù)將變的高效方便
對數(shù)據(jù)卷內(nèi)數(shù)據(jù)的修改會立馬生效,無論是容器內(nèi)操作還是本地操作
對數(shù)據(jù)卷的更新不會影響Docker鏡像,解耦了應(yīng)用和數(shù)據(jù)
數(shù)據(jù)卷的生命令周期不受容器的影響,除非你卸載它。
3、Docker數(shù)據(jù)卷常見的作用
數(shù)據(jù)持久化:比如MySQL數(shù)據(jù)庫,數(shù)據(jù)目錄要掛載到宿主主機(jī)或者別的地方,否則MySQL容器刪除你的數(shù)據(jù)也會隨之刪除。
同步操作:比如我需要修改nginx的配置文件,不需要在進(jìn)入容器內(nèi)部,可以直接修改數(shù)據(jù)卷對應(yīng)的文件就可以進(jìn)行配置實時同步。
容器間數(shù)據(jù)共享:多個容器之間需要數(shù)據(jù)共享的時候
4、操作數(shù)據(jù)卷
4.1 常用命令

docker volume 指令值

指令值:
create:創(chuàng)建一個volume
inspect:顯示一個或多個volume的信息
ls :列出所有的volume
prune :刪除未使用的volume
rm:刪除一個或多個指定的volume

4.2 掛載數(shù)據(jù)卷
創(chuàng)建數(shù)據(jù)卷myvolume

docker volume create myvolume

運行nginx容器

  docker run --name nginxtest -v myvolume:/usr/share/nginx/html -p 8000:80 -d nginx



查看數(shù)據(jù)卷掛載信息

docker volume inspect myvolume



數(shù)據(jù)卷新增文件并查看容器內(nèi)掛載的目錄文件是否同步

cd /var/lib/docker/volumes/myvolume/_data #進(jìn)入容器卷目錄
vi test.html #創(chuàng)建test.html 目錄
ls







     
進(jìn)入容器查看目錄是否正常同步

docker exec -it nginxtest /bin/bash
cd /usr/share/nginx/html
ls



容器內(nèi)刪除test.html 查看myvolume是否也刪除了

rm test.html


 


作者:郝光明 IT技術(shù)分享社區(qū)


歡迎關(guān)注:IT技術(shù)分享社區(qū)