你是不是也經(jīng)常在使用Docker的時(shí)候,遇到“數(shù)據(jù)持久化”相關(guān)的困惑?容器刪了,數(shù)據(jù)也跟著沒了?今天就帶你深入了解Docker的Volume機(jī)制,搞懂什么是Volume、怎么使用、存儲(chǔ)在哪,以及如何實(shí)現(xiàn)多個(gè)容器共享存儲(chǔ)!
一、什么是DockerVolume?
Docker的Volume(卷)是官方推薦的數(shù)據(jù)持久化方案,用來將容器中的數(shù)據(jù)獨(dú)立存儲(chǔ)在宿主機(jī)上。與容器生命周期解耦,刪除容器不會(huì)影響數(shù)據(jù),非常適合用于數(shù)據(jù)庫、日志等場景。
簡單理解就是:容器內(nèi)的數(shù)據(jù)->Volume->宿主機(jī)目錄。
二、Volume的使用場景
容器內(nèi)服務(wù)需要持久化數(shù)據(jù),比如MySQL、Redis、PostgreSQL
??多個(gè)容器之間需要共享數(shù)據(jù)
防止重要數(shù)據(jù)在容器銷毀時(shí)丟失
容器頻繁更新、遷移,但數(shù)據(jù)需要保留
三、Volume怎么使用?
1.創(chuàng)建Volume
dockervolumecreatemydata
查看:
dockervolumels
2.使用Volume運(yùn)行容器
dockerrun-d\--namemysql\-vmydata:/var/lib/mysql\mysql:5.7
這條命令把宿主機(jī)上的mydata卷掛載到了容器中的/var/lib/mysql,MySQL的數(shù)據(jù)就存儲(chǔ)在這個(gè)卷里。
3.查看卷掛載路徑
dockervolumeinspectmydata
輸出中Mountpoint字段會(huì)告訴你這個(gè)卷實(shí)際掛載到了宿主機(jī)的哪個(gè)路徑,例如:
"Mountpoint":"/var/lib/docker/volumes/mydata/_data"
也就是說,你的數(shù)據(jù)其實(shí)是存在宿主機(jī)這個(gè)目錄下的。
四、DockerVolume存儲(chǔ)在哪?
默認(rèn)情況下,Docker會(huì)將Volume存儲(chǔ)在:
/var/lib/docker/volumes/卷名/_data/
你也可以用第三方存儲(chǔ)驅(qū)動(dòng)(如NFS、GlusterFS、Ceph等)把Volume存儲(chǔ)到遠(yuǎn)程服務(wù)器或分布式存儲(chǔ)系統(tǒng)。
五、如何共享Volume?
方式1:多個(gè)容器掛載同一個(gè)Volume
dockerrun-d--namecontainer1-vmydata:/app/databusyboxsleep3600dockerrun-d--namecontainer2-vmydata:/app/databusyboxsleep3600
兩個(gè)容器就可以共享/app/data目錄下的內(nèi)容了。
方式2:使用--volumes-from繼承掛載
dockerrun-d--namecontainer1-v/databusyboxdockerrun-d--namecontainer2--volumes-fromcontainer1busybox
適合某些場景下的依賴?yán)^承,比如日志采集、配置共享等。
六、Volume的清理
刪除未使用的卷
dockervolumeprune
刪除指定卷
dockervolumermmydata
??注意:如果卷還在使用中,刪除會(huì)失敗。
七、補(bǔ)充:VolumevsBindMount
總結(jié)一下
DockerVolume是實(shí)現(xiàn)容器數(shù)據(jù)持久化和共享的關(guān)鍵工具。掌握Volume,可以讓你:
保證數(shù)據(jù)不隨容器銷毀而丟失
實(shí)現(xiàn)多個(gè)容器的數(shù)據(jù)共享
更安全、便捷地管理容器生命周期中的數(shù)據(jù)
別再讓數(shù)據(jù)隨風(fēng)而去了,趕緊用Volume把數(shù)據(jù)穩(wěn)穩(wěn)托住吧!
【可甜可咸能撩 異能深沉男V嬌軟腹黑女】只想努力賺錢, 將來做大佬, 卻因一則神秘的招聘廣告, 在劫難逃 臉相怪異可怖的少年 擺鐘一樣搖晃的女仆、 拉便不埋時(shí)隱時(shí)現(xiàn)的黑貓 一座遠(yuǎn)離城市燈火, 隱匿在深山密林中的莊園, 到底藏著多少秘密 她問 你這里有網(wǎng)嗎? 他疑: “ 什么網(wǎng)? 做什么用? 捕魚的網(wǎng)嗎? ” “ …… ” 她說: “ 這里一定住著神仙。 ” 他說: “ 說不定住著的是魔鬼。 ” 她笑了笑, “ 如果是魔鬼, 那也一定是一位浪漫的魔鬼。 ” 意外發(fā)現(xiàn)的密室…… 某人驚恐: “ 說什么吸血鬼僵尸, 他媽的, 都猜錯(cuò)了 ” 某人嚇尿: “ 我怕…… 我想媽媽…… ” 她將他當(dāng)做生命里的白月光, 毫無保留的信任他, 他卻步步為營, 誘她入坑。 當(dāng)詭秘的儀式一切準(zhǔn)備就緒時(shí), 她幾近絕望, 而他卻袖手旁觀。 “ 你對(duì)我的一切都是假的是不是? ” 她顫聲問他。 “ 是。 ” 他面如沉鐵, 沒有一絲猶豫。 那一刻她心死, 千鈞一發(fā)之際, 她撩起衣衫, 喚了他一聲: “ …… ” 他惶然失色, 難道三千年前在古戰(zhàn)場救下他的是她? ……免責(zé)聲明:本文內(nèi)容由開放的智能模型自動(dòng)生成,僅供參考。