![容器云服務(wù)架構(gòu)與運(yùn)維 課件03 持久化存儲(chǔ)卷_第1頁(yè)](http://file4.renrendoc.com/view10/M00/2F/09/wKhkGWXsb2iAeVtcAAFtDF9A6Rs695.jpg)
![容器云服務(wù)架構(gòu)與運(yùn)維 課件03 持久化存儲(chǔ)卷_第2頁(yè)](http://file4.renrendoc.com/view10/M00/2F/09/wKhkGWXsb2iAeVtcAAFtDF9A6Rs6952.jpg)
![容器云服務(wù)架構(gòu)與運(yùn)維 課件03 持久化存儲(chǔ)卷_第3頁(yè)](http://file4.renrendoc.com/view10/M00/2F/09/wKhkGWXsb2iAeVtcAAFtDF9A6Rs6953.jpg)
![容器云服務(wù)架構(gòu)與運(yùn)維 課件03 持久化存儲(chǔ)卷_第4頁(yè)](http://file4.renrendoc.com/view10/M00/2F/09/wKhkGWXsb2iAeVtcAAFtDF9A6Rs6954.jpg)
![容器云服務(wù)架構(gòu)與運(yùn)維 課件03 持久化存儲(chǔ)卷_第5頁(yè)](http://file4.renrendoc.com/view10/M00/2F/09/wKhkGWXsb2iAeVtcAAFtDF9A6Rs6955.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
容器云服務(wù)架構(gòu)與運(yùn)維單元3持久化存儲(chǔ)卷學(xué)習(xí)目標(biāo)了解容器的持久化存儲(chǔ)卷的概念、存儲(chǔ)卷的作用、了解使用存儲(chǔ)卷的優(yōu)勢(shì)與優(yōu)點(diǎn)、不同方式的持久化存儲(chǔ)卷實(shí)現(xiàn)方法、存儲(chǔ)卷的使用場(chǎng)景與使用方法等。掌握Bindmounts持久化存儲(chǔ)卷的實(shí)現(xiàn)與使用、Volume持久化存儲(chǔ)卷的實(shí)現(xiàn)與使用等。3.1認(rèn)識(shí)容器存儲(chǔ)卷3.2實(shí)現(xiàn)存儲(chǔ)卷持久化3.1認(rèn)識(shí)容器存儲(chǔ)卷3.1.1容器卷的介紹及使用場(chǎng)景持久化存儲(chǔ)卷Docker提供了3種方式把數(shù)據(jù)從Host掛載到Docker容器中,其中Bindmounts、Volume可以實(shí)現(xiàn)持久化存儲(chǔ),而Tmpfs不能實(shí)現(xiàn)持久化存儲(chǔ)3.1.1容器卷的介紹及使用場(chǎng)景持久化存儲(chǔ)卷DockerManagedVolume:數(shù)據(jù)卷,數(shù)據(jù)存放在主機(jī)文件系統(tǒng)/var/lib/docker/volumes/目錄下,該目錄由docker管理,其它進(jìn)程不允許修改,推薦該種方式持久化數(shù)據(jù);Bindmounts:直接掛載主機(jī)文件系統(tǒng)的任何目錄或文件,類似主機(jī)和容器的共享目錄,主機(jī)上任何進(jìn)程都可以訪問(wèn)修改,容器中也可以看到修改,這種方式最簡(jiǎn)單。tmpfs:數(shù)據(jù)暫存在主機(jī)內(nèi)存中,不會(huì)寫入文件系統(tǒng),重啟后,數(shù)據(jù)刪除。3.1.1容器卷的介紹及使用場(chǎng)景Bindmounts實(shí)現(xiàn)持久化存儲(chǔ)Bindmounts-方法一-v,
--volume參數(shù)
-v
宿主機(jī)文件/目錄:容器中的文件或者文件夾路徑:權(quán)限(可選項(xiàng)默認(rèn)是可讀寫)
3.1.1容器卷的介紹及使用場(chǎng)景Bindmounts實(shí)現(xiàn)持久化存儲(chǔ)Bindmounts-方法二--mount
標(biāo)志:由多個(gè)名值對(duì)組成,逗號(hào)分隔,每個(gè)鍵值由
<key>=<value>
元組組成。主要是type類型,可以是bind、volume或tmpfs要掛載的源
source,匿名卷忽略這個(gè)字段,可以指定為
src
或
source要掛載的目的地
destination,可能被指定為
destination、dst
或
target只讀選項(xiàng)
readonly3.1.1容器卷的介紹及使用場(chǎng)景Bindmounts實(shí)現(xiàn)持久化存儲(chǔ)-v和--mount兩者的區(qū)別如下:使用-v的時(shí)候,如果在DockerHost中不存在要掛載的文件或者目錄,Docker將會(huì)自動(dòng)創(chuàng)建,通常是一個(gè)目錄。使用--mount的時(shí)候,如果在DockerHost中不存在要掛載的文件或者目錄,Docker不會(huì)自動(dòng)創(chuàng)建目錄,并生成一個(gè)錯(cuò)誤。3.1.1容器卷的介紹及使用場(chǎng)景Bindmounts實(shí)現(xiàn)持久化存儲(chǔ)使用場(chǎng)景:①把Host中的配置文件共享給Host上面的容器。容器為什么自帶DNS解析呢?那是因?yàn)槟J(rèn)情況下Host把/etc/resolv.conf掛載到它上面的容器里面了。②在DockerHost上面的開發(fā)環(huán)境和容器直接共享程序的源代碼或者構(gòu)建要素。例如,用戶可以掛載一個(gè)Maven目錄到一個(gè)容器中,每當(dāng)用戶在DockerHost重新建立Maven項(xiàng)目,容器都可以直接獲取用戶重新構(gòu)建的Maven項(xiàng)目。③可以將源代碼目錄掛載到容器中,在Host中修改代碼就能看到應(yīng)用的實(shí)時(shí)效果。④將MySQL容器的數(shù)據(jù)放在Bindmounts里,這樣Host可以方便地備份和遷移數(shù)據(jù)。⑤只需要向容器添加文件,不需要覆蓋整個(gè)目錄。3.1.1容器卷的介紹及使用場(chǎng)景Volume實(shí)現(xiàn)持久化存儲(chǔ)Volume完全由Docker進(jìn)行管理,比如Volume的創(chuàng)建,用戶可以使用命令dockervolumecreate來(lái)簡(jiǎn)單地創(chuàng)建一個(gè)Volume,當(dāng)容器或者服務(wù)被創(chuàng)建的時(shí)候,Docker也可以自動(dòng)地創(chuàng)建一個(gè)Volume用戶創(chuàng)建的Volume將存儲(chǔ)在DockerHost(宿主機(jī))的存儲(chǔ)目錄下,并由Docker進(jìn)行管理。3.1.1容器卷的介紹及使用場(chǎng)景Volume實(shí)現(xiàn)持久化存儲(chǔ)一個(gè)給定的Volume可以同時(shí)掛載到多個(gè)容器中。當(dāng)沒有容器使用Volume時(shí),Volume對(duì)Docker仍然是可用的,并且不會(huì)被自動(dòng)刪除,使用dockervolumerm命令可以刪除Volume。在掛載Volume時(shí),可以對(duì)其命名,也可以默認(rèn)其隨機(jī)生成的名字。如果用戶沒有指定名稱,則當(dāng)Volume第一次掛載到一個(gè)容器時(shí),Docker會(huì)用一個(gè)隨機(jī)字符串對(duì)其進(jìn)行命名,這樣可以保證Volume在DockerHost(宿主機(jī))中的唯一性。3.1.1容器卷的介紹及使用場(chǎng)景Volume對(duì)比Bindmounts3.2實(shí)現(xiàn)存儲(chǔ)卷持久化存儲(chǔ)卷節(jié)點(diǎn)的規(guī)劃3.2.1持久化存儲(chǔ)卷的使用環(huán)境準(zhǔn)備3.2.1持久化存儲(chǔ)卷的使用Bindmounts持久化存儲(chǔ)卷使用將提供的nginx_latest.tar鏡像包,上傳至服務(wù)器的/root目錄下,并使用load命令加載,[root@docker~]#dockerload-inginx_latest.tar使用命令查看鏡像列表,[root@docker~]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEnginxlatest992e3b7be0464monthsago133MB3.2.1持久化存儲(chǔ)卷的使用Bindmounts持久化存儲(chǔ)卷使用Host上創(chuàng)建目錄(因?yàn)橥ㄟ^(guò)--mount進(jìn)行掛載時(shí)要求用戶在Host上有這個(gè)目錄),[root@docker~]#mkdir-p/root/nginx-test/html運(yùn)行容器,將宿主機(jī)的目錄/root/nginx-test/html與Nginx容器內(nèi)部工作目錄/usr/share/nginx/html相連,[root@docker~]#dockerrun-itd--namenginxtest-p80:80--mounttype=bind,source=/root/nginx-test/html,target=/usr/share/nginx/htmlnginx:latest7e74de9533cb3ea4b4e6b98ce1e18fd65734572fece7d7d00ab4b61f28be0b333.2.1持久化存儲(chǔ)卷的使用Bindmounts持久化存儲(chǔ)卷使用可以進(jìn)入容器內(nèi)部查看Nginx的項(xiàng)目目錄為空(因?yàn)镠ost宿主機(jī)中相應(yīng)的路徑下沒有內(nèi)容),[root@docker~]#dockerexec-itnginxtest/bin/bashroot@7e74de9533cb:/#ls/usr/share/nginx/html/可修改目錄內(nèi)容驗(yàn)證存儲(chǔ)3.2.1持久化存儲(chǔ)卷的使用Bindmounts持久化存儲(chǔ)卷使用Bindmounts只讀模式若用戶僅僅是想讀取Host宿主機(jī)上的文件,而不想修改其中的內(nèi)容,則可以將默認(rèn)的讀寫模式修改為只讀模式,[root@docker~]#dockerrun-itd--namenginxro-p80:80--mounttype=bind,source=/root/nginx-test/html,target=/usr/share/nginx/html,readonlynginx:latestc062f59dbc44409d6ef1651063623ae8397675dce7c9b575dff32617bc7800313.2.1持久化存儲(chǔ)卷的使用Bindmounts持久化存儲(chǔ)卷使用Bindmounts只讀模式啟動(dòng)之后,可以通過(guò)dockerinspect命令查看容器中的Mounts信息,具體命令如下:[root@docker~]#dockerinspectnginxro"Mounts":[{"Type":"bind","Source":"/root/nginx-test/html","Destination":"/usr/share/nginx/html","Mode":"",
"RW":false,"Propagation":"rprivate"}3.2.1持久化存儲(chǔ)卷的使用Volume持久化存儲(chǔ)卷使用Volume使用方式一使用MySQL鏡像進(jìn)行實(shí)驗(yàn),MySQL鏡像中使用了容器的Volume持久化存儲(chǔ)(可以通過(guò)官方MySQL鏡像的Dockerfile查看,當(dāng)中用到了Volume持久化存儲(chǔ)技術(shù),查看地址為/docker-library/mysql/blob/master/8.0/Dockerfile.debian),Dockerfile內(nèi)容3.2.1持久化存儲(chǔ)卷的使用Volume持久化存儲(chǔ)卷使用Volume使用方式一使用提供的mysql-latest.tar上傳至宿主機(jī)的/root目錄下,并將該鏡像加載,命令如下:[root@docker~]#dockerload-imysql-latest.tar[root@docker~]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEmysqllatest2933adc350f32weeksago546MBnginxlatest992e3b7be0464monthsago133MB使用命令查看當(dāng)前環(huán)境下的容器Volume,具體命令如下:[root@docker~]#dockervolumelsDRIVERVOLUMENAME3.2.1持久化存儲(chǔ)卷的使用Volume持久化存儲(chǔ)卷使用Volume使用方式一使用MySQL鏡像啟動(dòng)容器,再次查看volume,命令如下:[root@docker~]#dockerrun-d--namemysql1-eMYSQL_ALLOW_EMPTY_PASSWORD=truemysql:latestfee3c4f9ffd12afc379c7053036253375e0f76bf3f094dc4a3c4a7b31022886e[root@docker~]#dockerps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMESfee3c4f9ffd1mysql:latest"docker-entrypoint.s…"3secondsagoUp2seconds3306/tcp,33060/tcpmysql1[root@docker~]#dockervolumelsDRIVERVOLUMENAMElocald5e2619dc1ef20828adaafdc22e75650fcbcf6df221787f8a8c79bc3d5aabad53.2.1持久化存儲(chǔ)卷的使用Volume持久化存儲(chǔ)卷使用Volume使用方式一查看詳細(xì)信息[root@docker~]#dockervolumeinspectd5e2619dc1ef20828adaafdc22e75650fcbcf6df221787f8a8c79bc3d5aabad5[{"CreatedAt":"2021-03-01T01:22:54-05:00","Driver":"local","Labels":null,"Mountpoint":"/var/lib/docker/volumes/d5e2619dc1ef20828adaafdc22e75650fcbcf6df221787f8a8c79bc3d5aabad5/_data","Name":"d5e2619dc1ef20828adaafdc22e75650fcbcf6df221787f8a8c79bc3d5aabad5","Options":null,"Scope":"local"}]3.2.1持久化存儲(chǔ)卷的使用Volume持久化存儲(chǔ)卷使用Volume使用方式一刪除這個(gè)容器,Volume仍然存在[root@docker~]#dockerstopmysql1mysql1[root@docker~]#dockerrmmysql1mysql1[root@docker~]#dockervolumelsDRIVERVOLUMENAMElocald5e2619dc1ef20828adaafdc22e75650fcbcf6df221787f8a8c79bc3d5aabad5[root@docker~]#ll/var/lib/docker/volumes/total24drwxr-xr-x.3rootroot19Mar101:22d5e2619dc1ef20828adaafdc22e75650fcbcf6df221787f8a8c79bc3d5aabad5-rw-------.1rootroot32768Mar101:22metadata.db3.2.1持久化存儲(chǔ)卷的使用Volume持久化存儲(chǔ)卷使用Volume使用方式一設(shè)置volume別名[root@docker~]#dockerrun-d-vmysql-vol:/var/lib/mysql--namemysql1-eMYSQL_ALLOW_EMPTY_PASSWORD=truemysql:latestafb6669a83c660baf983397170c8211b127e88ab26724d6217f9f8f567bc998f[root@docker~]#dockervolumelsDRIVERVOLUMENAMElocald5e2619dc1ef20828adaafdc22e75650fcbcf6df221787f8a8c79bc3d5aabad5localmysql-vol[root@docker~]#ll/var/lib/docker/volumes/total24-rw-------.1rootroot32768Mar104:07metadata.dbdrwxr-xr-x.3rootroot19Mar104:07mysql-vol3.2.1持久化存儲(chǔ)卷的使用Volume持久化存儲(chǔ)卷使用Volume使用方式二創(chuàng)建一個(gè)Volume,并查看Volume的詳細(xì)信息,命令如下:[root@docker~]#dockervolumecreatetest_voltest_vol[root@docker~]#dockervolumeinspecttest_vol[{"CreatedAt":"2021-03-01T22:08:44-05:00","Driver":"local","Labels":{},"Mountpoint":"/var/lib/docker/volumes/test_vol/_data","Name":"test_vol","Options":{},"Scope":"local"}]3.2.1持久化存儲(chǔ)卷的使用Volume持久化存儲(chǔ)卷使用Volume使用方式二剛剛創(chuàng)建了一個(gè)名為test_vol的Volume,進(jìn)入以下的路徑查看,可以看到這是一個(gè)空的卷,[root@docker~]#ll/var/lib/docker/volumes/test_vol/_data/total0使用這個(gè)空的Volume啟動(dòng)一個(gè)容器,將提供的Nginx容器上傳至服務(wù)器內(nèi)并load(命令不再贅述),啟動(dòng)Nginx容器并使用test_vol這個(gè)Volume,[root@docker~]#dockerrun-itd--namenginxtest-p80:80--mountsource=test_vol,target=/usr/share/nginx/htmlnginx:latestf32eafb58d9f934e93cf4718828666ded1c135f147495ee33173e75ae7e62488[root@docker~]#dockerps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMESf32eafb58d9fnginx:latest"/docker-entrypoint.…"3secondsagoUp2seconds:80->80/tcpnginxtest3.2.1持久化存儲(chǔ)卷的使用Volume持久化存儲(chǔ)卷使用Volume使用方式二通過(guò)dockerinspectnginxtest命令查看容器的詳細(xì)情況,命令如下(只截取“Mounts”部分):"Mounts":[{"Type":"volume","Name":"test_vol","Source":"/var/lib/docker/volumes/test_vol/_data","Destination":"/usr/share/nginx/html","Driver":"local","Mode":"z","RW":true,"Propagation":""}]3.2.1持久化存儲(chǔ)卷的使用Volume持久化存儲(chǔ)卷使用Volume使用方式二再次查看宿主機(jī)上test_vol卷中的內(nèi)容,命令如下:[root@docker~]#ll/var/lib/docker/volumes/test_vol/_data/total8-rw-r--r--.1rootroot494Sep2910:1250x.html-rw-r--r--.1rootroot612Sep2910:12index.html發(fā)現(xiàn)這里多了兩個(gè)文件,因?yàn)橛脩粲靡粋€(gè)空的Volume來(lái)啟動(dòng)容器時(shí),會(huì)將容器中的內(nèi)容復(fù)制到用戶的宿主機(jī)上。3.2.1持久化存儲(chǔ)卷的使用Volume持久化存儲(chǔ)卷使用Volume使用方式二刪除容器,并查看Volume仍存在,Volume中的內(nèi)容也依舊存在[root@docker~]#dockerrm-fnginxtestnginxtest[root@docker~]#dockervolumelsDRIVERVOLUMENAMElocaltest_vol[root@docker~]#ll/var/lib/docker/volumes/test_vol/_data/total8-rw-r--r--.1rootroot494Sep2910:1250x.html-rw-r--r--.1rootroot612Sep2910:12index.html3.2.1持久化存儲(chǔ)卷的使用Volume持久化存儲(chǔ)卷使用Volume使用方式二接下來(lái)使用有數(shù)據(jù)的Volume來(lái)啟動(dòng)容器,首先將test_vol中的文件進(jìn)行修改,刪除50x.html,然后編輯index.html,具體命令如下:[root@docker~]#cd/var/lib/docker/volumes/test_vol/_data/[root@docker_data]#lltotal8-rw-r--r--.1rootroot494Sep2910:1250x.html-rw-r--r--.1rootroot612Sep2910:12index.html[root@docker_data]#rm-rf50x.html[root@docker_data]#echo"thisisavolumetest">index.html[root@docker_data]#catindex.htmlthisisavolumetest3.2.1持久化存儲(chǔ)卷的使用Volume持久化存儲(chǔ)卷使用Volume使用方式二使用test_vol這個(gè)Volume啟動(dòng)Nginx容器,并查看效果,命令如下:[root@docker_data]#dockerrun-itd--namenginxtest2-p80:80--mountsource=test_vol,target=/usr/share/nginx/htmlnginx:latest9f0ed866b48caf4ef3c2fa957ce8149f5fcf3c23113998b8be0c4a89a60b06d8[root@docker_data]#curlthisisavolumetest3.2.1持久化存儲(chǔ)卷的使用Volume持久化存儲(chǔ)卷使用Volume使用方式二可以看到,用一個(gè)現(xiàn)有的Volume也是可以進(jìn)行掛載的,并且會(huì)將Volume中的文件掛載到容器中,覆蓋掉容器中的文件。最后,嘗試如下情況:如果在運(yùn)行容器時(shí)不提前創(chuàng)建Volume,將會(huì)是什么情況?運(yùn)行Nginx容器,命令如下(source=test_vol2是一個(gè)不存在的V
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度城市綜合體開發(fā)代理傭金合同
- 漯河2024年河南漯河市委網(wǎng)信辦所屬事業(yè)單位人才引進(jìn)3人筆試歷年參考題庫(kù)附帶答案詳解
- 湖北2025年湖北武漢紡織大學(xué)人才引進(jìn)120人筆試歷年參考題庫(kù)附帶答案詳解
- 永州2025年湖南永州市零陵區(qū)引進(jìn)急需緊缺專業(yè)人才66人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年中國(guó)小便盆市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)單相共差模電涌保護(hù)器市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)LED方形燈市場(chǎng)調(diào)查研究報(bào)告
- 2025至2031年中國(guó)銅徽章行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年海綿清潔塊項(xiàng)目可行性研究報(bào)告
- 2025年機(jī)械手式水冷碳氧槍系統(tǒng)項(xiàng)目可行性研究報(bào)告
- 2024-2025學(xué)年第二學(xué)期開學(xué)典禮-開學(xué)典禮校長(zhǎng)致辭
- 生物(A版)-安徽省合肥一中(省十聯(lián)考)2024-2025學(xué)年度高二年級(jí)上學(xué)期期末測(cè)試試題和答案
- 蘇教版四年級(jí)數(shù)學(xué)下冊(cè)第三單元第二課時(shí)《常見的數(shù)量關(guān)系》課件
- 2025年中考物理總復(fù)習(xí)《壓強(qiáng)》專項(xiàng)測(cè)試卷含答案
- 《智能傳感器技術(shù)》課件
- SaaS服務(wù)具體應(yīng)用合同范本2024版版
- 山東省濰坊市2024-2025學(xué)年高三上學(xué)期1月期末 政治試題(含答案)
- 2025-2030年中國(guó)旅居康養(yǎng)行業(yè)全國(guó)市場(chǎng)開拓戰(zhàn)略制定與實(shí)施研究報(bào)告
- 知識(shí)產(chǎn)權(quán)培訓(xùn)內(nèi)容課件
- 2025年幼兒園年度工作總結(jié)及工作計(jì)劃
- 殘疾人掛靠合作合同協(xié)議書范本
評(píng)論
0/150
提交評(píng)論