国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区

當前位置:首頁 > 科技  > 軟件

Docker數(shù)據(jù)持久化與數(shù)據(jù)共享

來源: 責編: 時間:2023-08-20 23:16:23 442觀看
導讀上篇文章的最后我們使用Docker部署了一個純前端項目,但還有一個很重要的問題就是容器中產(chǎn)生的數(shù)據(jù)(比如log文件),容器一旦被刪除,容器內(nèi)的所有數(shù)據(jù)也就沒有了,為了避免這個問題我們可以將數(shù)據(jù)存儲到容器之外(比如宿主機),

上篇文章的最后我們使用Docker部署了一個純前端項目,但還有一個很重要的問題就是容器中產(chǎn)生的數(shù)據(jù)(比如log文件),容器一旦被刪除,容器內(nèi)的所有數(shù)據(jù)也就沒有了,為了避免這個問題我們可以將數(shù)據(jù)存儲到容器之外(比如宿主機),這樣即使刪除容器也不會丟失數(shù)據(jù)。一旦容器故障,我們可以重新創(chuàng)建一個容器,將數(shù)據(jù)掛載到容器里,就可以快速恢復。qTj28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)存儲方式

Docker提供了以下幾種存儲方式:qTj28資訊網(wǎng)——每日最新資訊28at.com

  • 「volume卷」:這種方式是在宿主機文件系統(tǒng)分配一塊專有存儲區(qū)域,由 Docker管理,并且與主機的核心功能隔離。非 Docker 進程不能修改文件系統(tǒng)的這一部分?!妇硎窃?Docker 中持久保存數(shù)據(jù)的最佳方式」,它適合存儲數(shù)據(jù)庫數(shù)據(jù),可掛到多個容器上
  • 「bind mount 綁定掛載」:這種方式是直接把宿主機目錄映射到容器內(nèi),適合掛代碼目錄和配置文件,可掛到多個容器上
  • 「tmpfs mount臨時掛載」:這種方式僅存儲在主機系統(tǒng)的內(nèi)存中,并且永遠不會寫入主機系統(tǒng)的文件系統(tǒng),適合存儲臨時文件,不可多容器共享

qTj28資訊網(wǎng)——每日最新資訊28at.com

這張圖很清晰的解釋了volume、bind mount、temps mount與容器和宿主機之間的關系,這三者最終都是存儲在宿主機上的。qTj28資訊網(wǎng)——每日最新資訊28at.com

重點了解volume數(shù)據(jù)卷:(其實綁定掛載也可以當成volume來理解)qTj28資訊網(wǎng)——每日最新資訊28at.com

  • 數(shù)據(jù)卷其實是宿主機上的一個目錄
  • 當容器目錄與數(shù)據(jù)卷目錄綁定之后,雙方的修改都會立即同步
  • 一個數(shù)據(jù)卷可以被多個容器掛載
  • 一個容器也可以掛載多個數(shù)據(jù)卷

「數(shù)據(jù)卷可以用來做容器數(shù)據(jù)持久化、外部機器與容器間接通信、容器之間間接通信」qTj28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)卷操作

數(shù)據(jù)卷(Volume)也是常見的 Docker 對象類型的一種,因此它也支持創(chuàng)建、查看、刪除等操作.qTj28資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建數(shù)據(jù)卷

使用docker volume create [name]指令來創(chuàng)建一個數(shù)據(jù)卷qTj28資訊網(wǎng)——每日最新資訊28at.com

docker volume create nanjiu-data

qTj28資訊網(wǎng)——每日最新資訊28at.com

查看所有的數(shù)據(jù)卷

docker volume ls

qTj28資訊網(wǎng)——每日最新資訊28at.com

查看卷信息

使用docker volume inspect [name]指令來查看對應卷信息qTj28資訊網(wǎng)——每日最新資訊28at.com

docker volume inspect nanjiu-data

qTj28資訊網(wǎng)——每日最新資訊28at.com

從上圖我們可以看到Mountpoint數(shù)據(jù)卷掛載的地址,需要注意的是「對于非 Linux 系統(tǒng)而言(Windows 、Mac ),該目錄不存在于你的文件系統(tǒng)中,而是存在于 Docker 虛擬機中?!?span style="display:none">qTj28資訊網(wǎng)——每日最新資訊28at.com

刪除數(shù)據(jù)卷

使用docker volume rm [name]指令來刪除對應的數(shù)據(jù)卷qTj28資訊網(wǎng)——每日最新資訊28at.com

docker volume rm nanjiu-data

qTj28資訊網(wǎng)——每日最新資訊28at.com

這里需要注意的是:qTj28資訊網(wǎng)——每日最新資訊28at.com

  • 「數(shù)據(jù)卷是用來做持久化數(shù)據(jù)的,它的生命周期獨立于容器,所以Docker不會在容器被刪除后自動刪除數(shù)據(jù)卷,并且也不存在垃圾回收這樣的機制來處理沒有任何容器引用的 數(shù)據(jù)卷」
  • 「如果需要在刪除容器的同時移除數(shù)據(jù)卷,可以在刪除容器的時候使用 docker rm -v 指令」

如果想要清除所有無容器引用的數(shù)據(jù)卷,可以使用以下指令:qTj28資訊網(wǎng)——每日最新資訊28at.com

docker volume prune

與容器一起使用

數(shù)據(jù)卷本身是用來為容器做數(shù)據(jù)持久化的,所以單獨創(chuàng)建一個數(shù)據(jù)卷的意義并不大。qTj28資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建容器與數(shù)據(jù)卷

命名數(shù)據(jù)卷

可以使用docker run指定-v或-mount來創(chuàng)建數(shù)據(jù)卷,兩者產(chǎn)生的結(jié)果相同,最大的區(qū)別在于-v語法將所有選項組合在一個字段中,而--mount 語法則將它們分開。qTj28資訊網(wǎng)——每日最新資訊28at.com

docker run -itd -v nanjiu-vol:/nanjiu-data --name nanjiu nginx:latest

這里通過-v指定了數(shù)據(jù)卷的名稱為nanjiu-vol,并且對應綁定容器中的路徑為/nanjiu-data對于容器中不存在的文件夾,Docker會幫我們自動新建,所以我們可以進入到容器中查看是否有該文件夾qTj28資訊網(wǎng)——每日最新資訊28at.com

qTj28資訊網(wǎng)——每日最新資訊28at.com

這里我們可以看到容器中對應的數(shù)據(jù)卷目錄qTj28資訊網(wǎng)——每日最新資訊28at.com

匿名數(shù)據(jù)卷

這里還有一種類型叫做匿名數(shù)據(jù)卷,他的創(chuàng)建方式只需要省略數(shù)據(jù)卷名稱就可以,然后Docker會為它生成一長串的hash值作為數(shù)據(jù)卷的名稱qTj28資訊網(wǎng)——每日最新資訊28at.com

docker run -itd -v /nanjiu-noname --name nanjiu-noname nginx:latest

qTj28資訊網(wǎng)——每日最新資訊28at.com

驗證數(shù)據(jù)持久化

我們先在這個數(shù)據(jù)卷目錄新建一個文件,再把當前容器刪除qTj28資訊網(wǎng)——每日最新資訊28at.com

qTj28資訊網(wǎng)——每日最新資訊28at.com

然后我們再重新創(chuàng)建一個容器并綁定上面那個數(shù)據(jù)卷,如果數(shù)據(jù)卷中的內(nèi)容還存在,那就能夠證明數(shù)據(jù)是持久化存儲的,不會隨著容器的刪除而刪除qTj28資訊網(wǎng)——每日最新資訊28at.com

qTj28資訊網(wǎng)——每日最新資訊28at.com

「從這里我們就能夠驗證數(shù)據(jù)卷可以用來做持久化存儲了」qTj28資訊網(wǎng)——每日最新資訊28at.com

綁定掛載

上面我們提到過它可以當成數(shù)據(jù)卷來理解,因為它在使用過程中幾乎與數(shù)據(jù)卷類似,不同的地方是它其實是與宿主機的文件系統(tǒng)進行綁定qTj28資訊網(wǎng)——每日最新資訊28at.com

docker run -itd -v ~/Desktop/nanjiu-mount-data:/nanjiu-mount-data --name nanjiu nginx:latest

這里-v的格式為 :,對應綁定的是宿主機目錄與容器目錄qTj28資訊網(wǎng)——每日最新資訊28at.com

qTj28資訊網(wǎng)——每日最新資訊28at.com

然后可以到桌面看對應的文件是否存在qTj28資訊網(wǎng)——每日最新資訊28at.com

qTj28資訊網(wǎng)——每日最新資訊28at.com

「綁定掛載可以讓宿主機與容器共享數(shù)據(jù),并且同樣不會隨容器的刪除而刪除,也可以用來實現(xiàn)數(shù)據(jù)持久化,上面有提到他適合用來掛載代碼目錄和配置文件」qTj28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)共享

容器與宿主機共享數(shù)據(jù)

綁定掛載

這個很好理解,上面那種bind mount綁定掛載方式就是最明確的,它是直接將宿主機上的目錄掛載到容器。qTj28資訊網(wǎng)——每日最新資訊28at.com

docker cp

volume數(shù)據(jù)卷的方式想要實現(xiàn)容器與宿主機共享數(shù)據(jù)稍微有點麻煩,因為「這種方式是在宿主機文件系統(tǒng)分配一塊專有存儲區(qū)域,由 Docker管理,并且與主機的核心功能隔離。非 Docker 進程不能修改文件系統(tǒng)的這一部分」qTj28資訊網(wǎng)——每日最新資訊28at.com

但好在docker提供的docker cp命令可以用來拷貝文件,該docker cp命令可以將內(nèi)容從SRC_PATH復制到DEST_PATH. 您可以從容器的文件系統(tǒng)復制到本地計算機,或者相反,從本地文件系統(tǒng)復制到容器。qTj28資訊網(wǎng)——每日最新資訊28at.com

docker cp 88eecfd2dd14:/nanjiu-data ~/Desktop/cpDir

qTj28資訊網(wǎng)——每日最新資訊28at.com

然后查看本地桌面是否有了拷貝過來的內(nèi)容qTj28資訊網(wǎng)——每日最新資訊28at.com

qTj28資訊網(wǎng)——每日最新資訊28at.com

通過這種方式也能實現(xiàn)宿主機與容器之間的數(shù)據(jù)共享,但它的缺點在于每次都需要手動操作,數(shù)據(jù)共享比較麻煩。qTj28資訊網(wǎng)——每日最新資訊28at.com

容器與容器之間共享數(shù)據(jù)

綁定掛載

這里第一種方式仍然是可以使用bind mount綁定掛載,因為同一個文件可以掛載到多個容器,這樣就可以借助宿主機中轉(zhuǎn)來實現(xiàn)容器之間的數(shù)據(jù)共享了,這種方式比較簡單易懂。qTj28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)卷容器

數(shù)據(jù)卷容器是一個專門為其它容器提供卷的容器,它提供的卷可以是bind mount,也可以是docker volume「數(shù)據(jù)卷容器在為其它容器提供卷功能時可以不需要處于運行狀態(tài)」qTj28資訊網(wǎng)——每日最新資訊28at.com

這里創(chuàng)建了兩種類型的volume,同時掛載在nanjiu-vc這個數(shù)據(jù)卷容器上,這個容器可以不啟動qTj28資訊網(wǎng)——每日最新資訊28at.com

docker create --name nanjiu-vc / > -v ~/Desktop/nanjiu-vc:/nanjiu-vc /> -v nanjiu-vc:/nanjiu-vc2 /> nginx:latest

qTj28資訊網(wǎng)——每日最新資訊28at.com

其他容器可以通過--volumes-from使用nannie-vc這個數(shù)據(jù)卷容器qTj28資訊網(wǎng)——每日最新資訊28at.com

qTj28資訊網(wǎng)——每日最新資訊28at.com

這里建了兩個容器都使用nanjiu-vc這個數(shù)據(jù)卷容器qTj28資訊網(wǎng)——每日最新資訊28at.com

qTj28資訊網(wǎng)——每日最新資訊28at.com

這樣兩個容器就通過數(shù)據(jù)卷容器實現(xiàn)了數(shù)據(jù)共享。qTj28資訊網(wǎng)——每日最新資訊28at.com

「這種方式的優(yōu)點在于:」qTj28資訊網(wǎng)——每日最新資訊28at.com

與bind mount相比,不必為每一個容器指定宿主機path,所有path都在volume container中定義好了,容器只需與volume container關聯(lián),實現(xiàn)了容器與host的解耦。qTj28資訊網(wǎng)——每日最新資訊28at.com

使用volume container的容器,其mount point是一致的,有利于配置的規(guī)范和標準化,但也帶來一定的局限,使用時需要綜合考慮。qTj28資訊網(wǎng)——每日最新資訊28at.com

改造之前的log存儲方式

之前的那種部署方式存在一個問題,如果容器出現(xiàn)故障被銷毀,那么容器內(nèi)產(chǎn)生的log文件也就沒有了,現(xiàn)在我們可以把它改造成將nginx產(chǎn)生的log文件使用數(shù)據(jù)卷存儲,當容器出現(xiàn)故障,我們只需要重新創(chuàng)建一個容器并掛載數(shù)據(jù)就可以快速恢復log文件排查問題qTj28資訊網(wǎng)——每日最新資訊28at.com

修改Dockerfile

# 指定node鏡像FROM node:16-alpine as builder# 指定工作目錄WORKDIR /code# 代碼復制到工作目錄ADD . /code# 安裝依賴RUN npm install --registry=https://registry.npm.taobao.org# 打包RUN npm run build# 指定nginx鏡像FROM nginx:alpine# 創(chuàng)建nginx日志目錄數(shù)據(jù)卷VOLUME ["/var/log/nginx"]# 復制打包后的代碼到nginx容器中COPY --from=builder /code/dist /usr/share/nginx/htmlCOPY /nginx.conf /etc/nginx/nginx.conf# 暴露端口EXPOSE 8080

重新打包鏡像

docker build -t nanjiu:1.0.1 .

qTj28資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建容器

基于上面nanjiu:1.0.1鏡像創(chuàng)建一個容器nanjiu-web3docker run -d -p 9099:8080 --name nanjiu-web3 nanjiu:1.0.1qTj28資訊網(wǎng)——每日最新資訊28at.com

qTj28資訊網(wǎng)——每日最新資訊28at.com

訪問頁面

這里主要是為了產(chǎn)生nginx日志文件qTj28資訊網(wǎng)——每日最新資訊28at.com

qTj28資訊網(wǎng)——每日最新資訊28at.com

將容器刪除

docker stop 4355deda547f # 停止容器docker rm 4355deda547f # 刪除容器

容器雖然被刪除了,但數(shù)據(jù)卷并不會跟隨容器的刪除而刪除qTj28資訊網(wǎng)——每日最新資訊28at.com

qTj28資訊網(wǎng)——每日最新資訊28at.com

新建容器綁定數(shù)據(jù)卷查看數(shù)據(jù)

docker run -d /-v 3690f4f3b2d15466a9dfa7f692cba06add99daba3f76b8e7ffdc99b1c5937a8a:/nginx-data /--name nanjiu-web4 nginx:latest

qTj28資訊網(wǎng)——每日最新資訊28at.com

這樣一來即使容器出現(xiàn)故障被刪除,也不影響查看log文件排查問題。qTj28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.rrqrq.com/showinfo-26-6150-0.htmlDocker數(shù)據(jù)持久化與數(shù)據(jù)共享

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 如何為游戲開發(fā)優(yōu)化3D模型?

下一篇: 使用Redis分布式鎖可能會出現(xiàn)哪些問題?

標簽:
  • 熱門焦點
Top 国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区
久久久99精品免费观看不卡| 97久久人人超碰| 风间由美中文字幕在线看视频国产欧美| 国产成人免费视频精品含羞草妖精| 欧美jizzhd精品欧美喷水 | 久久久久久久久久久黄色 | 欧美视频一区在线| 国产日韩av一区| 老司机免费视频一区二区| 欧美在线日韩| 欧美日韩久久久| 自拍偷自拍亚洲精品播放| 九一九一国产精品| 中文亚洲欧美| 久久综合久久鬼色中文字| 三级一区在线视频先锋| 欧美成人中文| 91精品国产综合久久精品性色| 亚洲日本欧美天堂| 不卡视频免费播放| 欧美视频在线一区二区三区| 中文字幕在线观看不卡| 国产不卡一区视频| 色乱码一区二区三区88| 亚洲欧美日韩久久精品| a级高清视频欧美日韩| 欧美丝袜自拍制服另类| 亚洲午夜三级在线| 欧美激情成人在线| 日韩一区二区精品葵司在线| 天堂av在线一区| 999在线观看精品免费不卡网站| 欧美精品一区二区在线观看| 久久精品国产精品亚洲精品| 国产美女一区| 亚洲欧美激情一区二区| 91蜜桃免费观看视频| 88在线观看91蜜桃国自产| 日韩精品乱码av一区二区| 激情丁香综合| 国产精品免费丝袜| 91麻豆国产自产在线观看| 日韩一区二区三区四区五区六区| 免费在线观看成人| 免费亚洲婷婷| 亚洲美女在线国产| 国产色91在线| 欧美日韩dvd在线观看| 国产精品vip| 国产成人精品亚洲午夜麻豆| 亚洲一卡二卡三卡四卡| 99精品国产福利在线观看免费| 久久综合五月天婷婷伊人| 激情亚洲综合在线| 国产凹凸在线观看一区二区| 亚洲国产美女搞黄色| 久久久久99精品国产片| 欧洲一区二区三区免费视频| www.综合网.com| 精品国产欧美一区二区| www.久久久久久久久| 欧美一级在线观看| 成人做爰69片免费看网站| 日韩欧美国产三级| 不卡一区在线观看| 久久久国际精品| 91麻豆精东视频| 国产精品久久一级| 亚洲欧洲视频| 亚洲国产一区二区三区青草影视| 国产精品夜夜夜一区二区三区尤| 亚洲国产一区二区三区青草影视| 国产精品日韩一区二区| 亚洲电影一级片| 色综合久久六月婷婷中文字幕| 日韩精品欧美精品| 欧美精品第1页| 99精品视频一区| 国产精品不卡一区二区三区| 日韩视频在线观看国产| 亚洲一区二区免费视频| 色婷婷综合中文久久一本| 免费成人你懂的| 91精品午夜视频| 午夜精品影院| 亚洲国产成人高清精品| 欧美性高清videossexo| 成人一区在线看| 国产精品美女久久久久久2018 | 亚洲精品久久嫩草网站秘色| 美女国产精品| 风间由美一区二区三区在线观看| 久久久久久久久久电影| 夜夜夜久久久| 精品一区二区三区免费| 久久日一线二线三线suv| 欧美久久视频| 日本麻豆一区二区三区视频| 日韩一区二区三区三四区视频在线观看| av激情亚洲男人天堂| 亚洲免费在线视频| 欧美四级电影网| 欧美日本国产精品| 日韩成人免费电影| 欧美精品一区二区三区一线天视频 | 91福利视频久久久久| 成人视屏免费看| 综合色天天鬼久久鬼色| 欧洲中文字幕精品| 色综合欧美在线视频区| 亚洲成av人片一区二区梦乃| 日韩欧美www| 亚洲一卡久久| 国产成人高清在线| 一级日本不卡的影视| 日韩欧美一区二区在线视频| 亚洲激情成人| 国产乱一区二区| 亚洲女人的天堂| 日韩欧美一区电影| 国产伦精品一区二区三区视频黑人| 国产精品夜夜嗨| 亚洲自拍偷拍综合| 久久久久久麻豆| 欧美日韩一区精品| 99精品热6080yy久久| 成人精品一区二区三区中文字幕| 亚洲国产日韩a在线播放| 久久一夜天堂av一区二区三区 | 成人黄色av电影| 午夜视频在线观看一区二区三区| 久久婷婷国产综合国色天香| 在线观看av一区| 99香蕉国产精品偷在线观看| 成人av在线影院| 人人精品人人爱| 樱花影视一区二区| 国产亚洲视频系列| 欧美一区二区三区四区久久| 亚洲综合视频一区| 亚洲性感美女99在线| 9色porny自拍视频一区二区| 毛片一区二区三区| 一个色妞综合视频在线观看| 久久久久久久久岛国免费| 6080国产精品一区二区| 色综合久久99| 国产亚洲精品bv在线观看| 欧美日韩国产三区| www.欧美精品一二区| 韩国女主播成人在线| 日本中文字幕一区二区视频 | 欧美视频一区二区三区在线观看 | 国内一区二区在线| 蜜臀av亚洲一区中文字幕| 亚洲午夜成aⅴ人片| 亚洲视频在线一区| 欧美国产1区2区| 久久久久久久久蜜桃| 精品精品国产高清a毛片牛牛| 欧美日韩精品欧美日韩精品| 欧美探花视频资源| 欧美色综合影院| 欧美在线一二三四区| 日本乱人伦aⅴ精品| 久久黄色小说| 久久九九精品| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美r级电影在线观看| 日韩一级免费观看| 欧美精品aⅴ在线视频| 欧美美女喷水视频| 欧美高清视频www夜色资源网| 欧美性受极品xxxx喷水| 欧美日韩中字一区| 欧美日韩一级二级| 制服.丝袜.亚洲.中文.综合| 欧美一区二区国产| 精品国产乱码久久久久久1区2区 | 国产美女诱惑一区二区| 久久aⅴ乱码一区二区三区| 午夜在线精品偷拍| 色一区在线观看| 制服丝袜中文字幕亚洲| 日韩精品一区二区三区在线| 日韩欧美国产麻豆| 久久精品欧美一区二区三区不卡 | 在线日韩av片| 欧美日韩电影在线| 精品福利一区二区三区| 亚洲国产精品精华液2区45| 亚洲天堂av一区| 亚洲高清视频的网址| 老司机精品视频一区二区三区| 国产激情91久久精品导航| 成人高清在线视频| 伊人精品在线| 在线亚洲+欧美+日本专区| 欧美一级在线观看| 欧美激情艳妇裸体舞|