日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据卷

發(fā)布時間:2025/6/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据卷 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

數(shù)據(jù)卷與目錄

docker run -itd --name 【容器的名字】 -v 【宿主機目錄】:【容器目錄】 【依賴鏡像】【命令可選】docker run -itd --name tmp-nginx -v /home/abc/tmp/:/tmp-text nginx

數(shù)據(jù)卷與文件

docker run -itd --name 【容器的名字】 -v 【宿主機文件】:【容器文件】 【依賴鏡像】【命令可選】docker run -itd --name tmp-txt -v /home/abc/tmp/hello.go:/nihao/nihao.sh nginx

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

格式 :

docker create -v 【容器數(shù)據(jù)卷目錄】 --name 【容器名稱】 【依賴的鏡像名稱 】 【命令可選】docker create -v /data-tmp --name v-tmp nginx

創(chuàng)建兩個容器掛載同一個數(shù)據(jù)卷容器進行交互

格式:

docker run --volumes-from【數(shù)據(jù)卷容器的id或名字】-itd --name 【容器名字】 【鏡像名字】【參數(shù)可選]docker run --volumes-from v-tmp -itd --name tmp01 nginx docker run --volumes-from v-tmp -itd --name tmp02 nginx

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

需要在多個容器之間共享一些持續(xù)更新的數(shù)據(jù),最簡單的方式就是使用數(shù)據(jù)卷容器.數(shù)據(jù)卷容器也是一個容器,但是他的目的是專門用來提供數(shù)據(jù)卷供其他容器掛載

數(shù)據(jù)卷容器:使用特定容器維護數(shù)據(jù)卷

如果使用數(shù)據(jù)卷容器,在多個容器之間共享數(shù)據(jù),并永久保存這些數(shù)據(jù),需要有一個規(guī)范流程才能做到

  • 創(chuàng)建數(shù)據(jù)卷容器
  • 其他容器掛載數(shù)據(jù)卷容器
  • 注意: 數(shù)據(jù)卷容器自身并不需要啟動,但是啟動的時候依然可以進行數(shù)據(jù)卷容器的工作

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

    創(chuàng)建兩個容器,同時掛載數(shù)據(jù)卷容器

    #命令格式: docker create -v [容器數(shù)據(jù)卷目錄] --name [容器名字][鏡像名稱] [命令(可選)] #執(zhí)行效果 $ docker create -v /data --name v1-test1 nginx

    創(chuàng)建兩個容器,同時掛載數(shù)據(jù)卷容器

    #命令格式: docker run --volumes-from [數(shù)據(jù)卷容器id/name] -tid --name [容器名字][鏡像名稱] [命令(可 選)] #執(zhí)行效果: #創(chuàng)建 vc-test1 容器: docker run --volumes-from 4693558c49e8 -tid --name vc-test1 nginx /bin/bash #創(chuàng)建 vc-test2 容器: docker run --volumes-from 4693558c49e8 -tid --name vc-test2 nginx /bin/bash

    確認卷容器共享

    #進入vc-test1,操作數(shù)據(jù)卷容器: :~$ docker exec -it vc-test1 /bin/bash root@c408f4f14786:/# ls /data/ root@c408f4f14786:/# echo 'v-test1' > /data/v-test1.txt root@c408f4f14786:/# exit #進入vc-test2,確認數(shù)據(jù)卷: :~$ docker exec -it vc-test2 /bin/bash root@7448eee82ab0:/# echo 'v-test2' > /data/v-test2.txt root@7448eee82ab0:/# ls /data/ v-test1.txt root@7448eee82ab0:/# exit #回到vc-test1進行驗證 :~$ docker exec -it vc-test1 /bin/bash root@c408f4f14786:/# ls /data/ v-test1.txt v-test2.txt root@c408f4f14786:/# cat /data/v-test2.txt v-test2

    數(shù)據(jù)備份原理

    為什么需要數(shù)據(jù)備份和恢復? 工作中很多的容器的數(shù)據(jù)需要查看,所有需要備份將數(shù)據(jù)很輕松的拿到本地目錄

    數(shù)據(jù)備份方案:

  • 創(chuàng)建一個掛載數(shù)據(jù)卷容器的容器
  • 掛載宿主機本地目錄作為備份數(shù)據(jù)卷
  • 將數(shù)據(jù)卷容器的內(nèi)容備份到宿主機本地目錄掛載的數(shù)據(jù)卷中 4 完成備份操作后銷毀剛創(chuàng)建的容器
  • 數(shù)據(jù)備份實踐

    在2.3.4的數(shù)據(jù)卷容器基礎上做數(shù)據(jù)的備份

    #命令格式: $ docker run --rm --volumes-from [數(shù)據(jù)卷容器id/name] -v [宿主機目錄]:[容器目錄][鏡像名稱] [備份命令] #命令演示: #創(chuàng)建備份目錄: $ mkdir /backup/ #創(chuàng)建備份的容器: $ docker run --rm --volumes-from 60205766d61a -v /home/itcast/backup/:/backup/ nginx tar zcPf /backup/data.tar.gz /data #驗證操作: $ ls /backup $ zcat /backup/data.tar.gz

    注釋: -P:使用原文件的原來屬性(屬性不會依據(jù)使用者而變),恢復字段到它們的原始方式,忽略現(xiàn)有的用戶權(quán) 限屏蔽位(umask)。 加了-p之后,tar進行解壓后,生成的文件的權(quán)限,是直接取自tar包里面文件的權(quán)限(不會再 使用該用戶的umask值進行運算),那么不加-p參數(shù),將還要再減去umask的值(位運算的減),但是如果使用 root用戶進行操作,加不加-p參數(shù)都一樣。

    數(shù)據(jù)還原

  • 創(chuàng)建一個新的數(shù)據(jù)卷容器(或刪除原數(shù)據(jù)卷容器的內(nèi)容)
  • 創(chuàng)建一個新容器,掛載數(shù)據(jù)卷容器,同時掛載本地的備份目錄作為數(shù)據(jù)卷
  • 將要恢復的數(shù)據(jù)解壓到容器中
  • 完成還原操作后銷毀剛創(chuàng)建的容器
  • 數(shù)據(jù)還原實踐

    #命令格式: docker run --rm -itd --volumes-from [數(shù)據(jù)要到恢復的容器] -v [宿主機備份目錄]:[容器備份目錄] [鏡像名稱] [解壓命令] #命令實踐: #啟動數(shù)據(jù)卷容器 $ docker start c408f4f14786 #刪除源容器內(nèi)容: $ docker exec -it vc-test1 bash root@c408f4f14786:/# rm -rf /data/* #恢復數(shù)據(jù): docker run --rm --volumes-from v-test -v /home/itcast/backup/:/backup/ nginx tar xPf /backup/data.tar.gz -C /data #驗證: :~$ docker exec -it vc-test1/bin/bash root@c408f4f14786:/# ls /data/data/ v-test1.txt v-test2.txt #新建新的數(shù)據(jù)卷容器: :~$ docker create -v /newdata --name v-test2 nginx #簡歷新的容器掛載數(shù)據(jù)卷容器 :~$ docker run --volumes-from a7e9a33f3acb -tid --name vc-test3 nginx /bin/bash #恢復數(shù)據(jù): docker run --rm --volumes-from v-test2 -v /home/itcast/backup/:/backup/ nginx tar xPf /backup/data.tar.gz -C /newdata #驗證: :~$ docker exec -it vc-test3 /bin/bash root@c408f4f14786:/# ls /newdata v-test1.txt v-test2.txt

    注意: 解壓的時候,如果使用目錄的話,一定要在解壓的時候使用 -C 制定掛載的數(shù)據(jù)卷容器,不然的話容器數(shù)據(jù) 是無法恢復的,因為容器中默認的backup目錄不是數(shù)據(jù)卷,即使解壓后,也看不到文件。

    數(shù)據(jù)是最寶貴的資源,docker在設計上考慮到了這點,并且為數(shù)據(jù)的操作提供了充分的支持

    總結(jié)

    以上是生活随笔為你收集整理的数据卷的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。