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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

数据卷

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

數據卷與目錄

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

數據卷與文件

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

創建1個數據卷容器

格式 :

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

創建兩個容器掛載同一個數據卷容器進行交互

格式:

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

數據卷容器

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

數據卷容器:使用特定容器維護數據卷

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

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

    創建一個數據卷容器

    創建兩個容器,同時掛載數據卷容器

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

    創建兩個容器,同時掛載數據卷容器

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

    確認卷容器共享

    #進入vc-test1,操作數據卷容器: :~$ 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,確認數據卷: :~$ 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

    數據備份原理

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

    數據備份方案:

  • 創建一個掛載數據卷容器的容器
  • 掛載宿主機本地目錄作為備份數據卷
  • 將數據卷容器的內容備份到宿主機本地目錄掛載的數據卷中 4 完成備份操作后銷毀剛創建的容器
  • 數據備份實踐

    在2.3.4的數據卷容器基礎上做數據的備份

    #命令格式: $ docker run --rm --volumes-from [數據卷容器id/name] -v [宿主機目錄]:[容器目錄][鏡像名稱] [備份命令] #命令演示: #創建備份目錄: $ mkdir /backup/ #創建備份的容器: $ 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:使用原文件的原來屬性(屬性不會依據使用者而變),恢復字段到它們的原始方式,忽略現有的用戶權 限屏蔽位(umask)。 加了-p之后,tar進行解壓后,生成的文件的權限,是直接取自tar包里面文件的權限(不會再 使用該用戶的umask值進行運算),那么不加-p參數,將還要再減去umask的值(位運算的減),但是如果使用 root用戶進行操作,加不加-p參數都一樣。

    數據還原

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

    #命令格式: docker run --rm -itd --volumes-from [數據要到恢復的容器] -v [宿主機備份目錄]:[容器備份目錄] [鏡像名稱] [解壓命令] #命令實踐: #啟動數據卷容器 $ docker start c408f4f14786 #刪除源容器內容: $ docker exec -it vc-test1 bash root@c408f4f14786:/# rm -rf /data/* #恢復數據: 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 #新建新的數據卷容器: :~$ docker create -v /newdata --name v-test2 nginx #簡歷新的容器掛載數據卷容器 :~$ docker run --volumes-from a7e9a33f3acb -tid --name vc-test3 nginx /bin/bash #恢復數據: 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 制定掛載的數據卷容器,不然的話容器數據 是無法恢復的,因為容器中默認的backup目錄不是數據卷,即使解壓后,也看不到文件。

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

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。