docker(5):數據的管理

来源:https://www.cnblogs.com/szlblog/archive/2019/04/07/10666242.html
-Advertisement-
Play Games

Docker的volume捲 為了能持久話保存和共用容器的數據。 使用docker volume捲的兩種方式 1:數據捲 2:數據捲容器 1:數據捲 數據捲:數據捲會繞過docker 的ufs 直接寫在物理設備上,對數據捲的操作可以及時生效,並且數據捲是可以進行共用重用的,為一個或者多個容器提供訪問 ...


Docker的volume捲 為了能持久話保存和共用容器的數據。

  使用docker volume捲的兩種方式

  1:數據捲

  2:數據捲容器

1:數據捲

數據捲:數據捲會繞過docker 的ufs 直接寫在物理設備上,對數據捲的操作可以及時生效,並且數據捲是可以進行共用重用的,為一個或者多個容器提供訪問。數據捲的存在的目的在於永久話保存docker的數據,數據捲獨立於容器的生命周期之外。不會因docker的變化兒產生變化

  (1):掛載一個隨機名稱的目錄

  我們在運行容器的時候 通過使用  -V 來添加 數據捲,也可以多次指定掛載多個。

       運行一個主機名為 centos1 容器名為centos1 的容器

       docker run  -it -v /data -h centos1  --name centos1 centos

  註:-v /data 我們掛載了一個名為data的數據捲 (-h centos1) 指定主機名

  

  使用-v 時 docker 守護進程會自動幫助我們創建一個data文件.這時的data文件其實掛載了宿主機的文件我們來查看一下宿主機文件的地址:

  推出容器查看centos1 的 配置信息

        docker inspect centos1  找到Mounts 節點

  

  Source 這裡就是對應的宿主機目錄隨機了一個名稱:預設是可讀寫的,我們不論是在宿主機中還是在容器寫入的任何信息,兩邊都可以進行查看。Volume 就是docker 的捲,代表目錄或者文件。

       因為這裡的捲是掛載的宿主機的文件,所以不會隨著容器的銷毀而銷毀.

  (2)掛載一個宿主機的文件或目錄

  docker run -it -v /var/lib/docker/volumes:/volumes -h centos2 --name centos2 centos

  -v /var/lib/docker/volumes:/volumes     

  上面的命令掛載了宿主機 /var/lib/docker/volumes 文件路徑:/volumes 容器的路徑。

  

  看到已經掛載成功了,我們可以看多個容器我們可以共用一個文件。這樣就可以避免我們的數據配置。。。信息丟失,比如我們可以分成存放 程式,日誌,配置等信息

   -v /var/lib/docker/volumes:/volumes:ro 可以設置只讀,預設是 rw讀寫

2:數據捲容器

  

  (1):使用數據捲:

  我們運行一個名為Centos3的容器,並且centos2 作為一個數據捲容器

  docker run -it  --volumes-from centos2 -h centos3 --name centos3 centos

       參數: --volumes-from   centos2  指定一個捲容器。

  運行成功後我們查看一下centos3 是否共用了數據捲容器centos2的捲

  

  上圖中我們可以看到,centos3和centos2共用了捲。

  為什麼使用數據捲

   在生產測試環境中我們在使用的時候可以只創建一個容器,不運行任何程式,此容器的作用就是為了共用數據捲。這個容器就被稱為數據捲容器。

   註意:在刪除掛載有數據捲容器的時候我們要加上 -v 選項 ,這樣才會刪除數據捲,不然出來不會刪除外,還會浪費磁碟空間

   例如:Docker rm -v centos3 當我們刪除centos3 的時候,他使用的數據捲是不會被刪除的,因為當一個數據捲在被其他容器使用的時候是不會被刪除的。

  (2):數據捲的備份

  數據捲的備份是通過啟動一個新的容器,在新的容器中執行打包壓縮命令,來實現備份操作的。也就是說這個容器是可以執行後立即刪除的

  執行下麵的命令進行備份:

  docker run --rm --volumes-from centos2 -v /backup:/backup centos tar cvf /backup/volume.tar /volumes

  

  備份完成我們查找一下備份

  

  查看容器是否存在:

  

  我們可以看到當容器執行完命令後就刪除了

  命令選項作用:

  --rm            :容器運行後刪除

  --volumes-from centos2      :備份數據捲容器掛載的所有數據捲

  -v /backup:/backup             :  備份後存放的地址

  tar cvf /backup/volume.tar  :執行備份並且指定備份的名稱

  /volumes       :數據捲容器centos2  掛載的數據捲目錄

有不足之處 希望大家指出相互學習,

            本文原創:轉載請註明出處 謝謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近在學習Python,不得不說,Python真的是一門很好用的語言。但是學習的過程中關於變數作用域(scope)的命名空間(namespace)的問題真的把我給搞懵了。在查閱了相關資料之後,覺得自己對Python的作用域和命名空間有了一定得瞭解。故寫在這裡,一方面加深自己的理解,另一方面分享知識。 ...
  • 本文將主要講解 J.U.C 中的 Future 框架,並分析結合源碼分析其內部結構邏輯; 一、Future 框架概述 JDK 中的 Future 框架實際就是 Future 模式的實現,通常情況下我們會配合線程池使用,但也可以單獨使用;下麵我們就單獨使用簡單舉例; 1. 應用實例 列印: 如上面代碼 ...
  • 前段時間有個需求:將生產環境的部分數據轉移到測試伺服器進行測試。由於只需要導入特定賬號的數據,我就想著將寫個腳本,將數據組裝成sql語句導出為sql文件,然後轉移到測試伺服器,導入到MySQL中。想象是美好的,過程是痛苦的,下麵總結下幾點。 PHP腳本的處理 1、腳本的思路就是:查詢特定賬號數據,組 ...
  • 文件上傳 使用commons-fileupload-1.4控制項及依賴的commons-io-2.6控制項 jsp頁面中內容 <form action="../servlet/FileUpdate" method="post" enctype="multipart/form-data"> <div al ...
  • 1.安裝git 軟體(下一步直到完成) 2.碼雲註冊(保存代碼) 3.創建代碼托管倉庫 4.創建文件夾 5.寫東西並提交到碼雲 1.在某個文件夾下寫東西 2.寫完之後在此文件夾下滑鼠右鍵,並選擇[git bash here] 6. 在'黑框'里輸入命令 - git init :用於做初始化, 其實就 ...
  • 在阿裡雲伺服器運維過程中,有時候可能會忘記了伺服器的實例密碼,那忘記了阿裡雲Windows伺服器或者Centos伺服器的實例密碼怎麼辦?其實阿裡雲的ECS後臺管理頁面提供了重置實例密碼的功能,運維人員在瀏覽器Web端登錄阿裡雲ECS管理後臺,而後進入實例管理頁面進行實例密碼的重置,重置完實例密碼後重 ...
  • 起因 寫這一篇的起因是想要通過新增預設參數來代替以前的方法,結果發現儘管在調用時寫起來一樣,實際上也沒有被當做同樣的方法,兩個方法大致如下: 上述兩種方法都可以通過 TestMethod("1"); 調用,所以最開始誤以為兩個方法的調用是等價的,但是實際使用中通過DLL引用的方式會提示找不到方法,這 ...
  • 最近想給自己的代辦清單任務微信小程式想加個語音識別識別功能,廢話不多說,直接說重點,語音識別使用的是百度語音識別api,因為微信小程式的錄音輸入文件目前只能是mp3或aac 但是百度語音識別不支持這兩種(百度api介面文檔上有說明),所以需要把音頻格式轉換一下,我這邊使用的是Alvas.Audio. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...