docker存儲卷及dockers容器源碼部署httpd

1. COW機制

Docker鏡像由多個只讀層疊加而成,啟動容器時,Docker會加載只讀鏡像層并在鏡像棧頂部添加一個讀寫層。

如果運行中的容器修改了現有的一個已經存在的文件,那么該文件將會從讀寫層下面的只讀層復制到讀寫層,該文件的只讀版本依然存在,只是已經被讀寫層中該文件的副本所隱藏,這就是“寫時復制(COW)”機制。

在這里插入圖片描述
對于這種方式來說,我們去訪問一個文件,修改和刪除等一類的操作,其效率會非常的低,因為隔著很多層鏡像。

而要想繞過這種限制,我們可以通過使用存儲卷的機制來實現。

2. 什么是存儲卷

存儲卷就是將宿主機的本地文件系統中存在的某個目錄直接與容器內部的文件系統上的某一目錄建立綁定關系。這就意味著,當我們在容器中的這個目錄下寫入數據時,容器會將其內容直接寫入到宿主機上與此容器建立了綁定關系的目錄。

在這里插入圖片描述

3. 使用存儲卷的好處

如果容器中跑的進程的所有有效數據都保存在存儲卷中,從而脫離容器自身文件系統之后,帶來的好處是當容器關閉甚至被刪除時,只要不刪除與此容器綁定的在宿主機上的這個存儲目錄,我們就不用擔心數據丟失了。因此就可以實現數據持久,脫離容器的生命周期而持久。

我們通過這種方式管理容器,容器就可以脫離主機的限制,可以在任意一臺部署了docker的主機上跑容器,而其數據則可以置于一個共享存儲文件系統上,比如nfs。

Docker的存儲卷默認情況下是使用其所在的宿主機上的本地文件系統目錄的,也就是說宿主機上有一塊屬于自己的硬盤,這個硬盤并沒有共享給其他的Docker主機,而在這臺主機上啟動的容器所使用的存儲卷是關聯到此宿主機硬盤上的某個目錄之上。

這就意味著容器在這臺主機上停止運行或者被刪除了再重建,只要關聯到硬盤上的這個目錄下,那么其數據還存在。但如果在另一臺主機上啟動一個新容器,那么數據就沒了。而如果在創建容器的時候我們手動的將容器的數據掛載到一臺nfs服務器上,那么這個問題就不再是問題了。

4. 為什么要用存儲卷

關閉并重啟容器,其數據不受影響,但刪除Docker容器,則其更改將會全部丟失。

因此Docker存在的問題有:

  • 存儲于聯合掛載文件系統中,不易于宿主機訪問
  • 容器間數據共享不便
  • 刪除容器其數據會丟失

而要解決這些問題,解決方案就是使用存儲卷。

5. 存儲卷管理方式

存儲卷(Data Volume)于容器初始化時被自動創建,由base image提供的卷中的數據會于此期間完成復制。

Volume的初衷是獨立于容器的生命周期實現數據持久化,因此刪除容器之時既不會刪除卷,也不會對未被引用的卷做垃圾回收操作。

存儲卷為Docker提供了獨立于容器的數據管理機制,我們可以把鏡像想象成靜態文件,例如“程序”,把卷類比為動態內容,例如“數據”。所以鏡像可以重用,而卷則可以共享。

卷實現了“程序(鏡像)”和“數據(卷)”的分離,以及“程序(鏡像)”和“制作鏡像的主機”的分離,用戶制作鏡像時無須再考慮鏡像運行的容器所在的主機的環境。
在這里插入圖片描述

6. 存儲卷的分類

Docker有兩種類型的卷,每種類型都在容器中存在一個掛載點,但其在宿主機上的位置有所不同:

  • 綁定掛載卷
    • 指向主機文件系統上用戶指定位置的卷
  • Docker-managed volume
    • Docker守護進程在主機文件系統的一部分中創建托管卷,這些卷歸Docker所有
      在這里插入圖片描述

7. 容器數據管理

用戶在使用Docker的過程中,往往需要能查看容器內應用產生的數據,或者需要把容器內的數據進行備份,甚至多個容器之間進行數據的共享,這必然涉及容器的數據管理操作。

容器中管理數據主要有兩種方式:

  • 數據卷(Data Volumes)
  • 數據卷容器(Data Volumes Containers)

容器Volume使用語法:
Docker-managed volume

docker run -it --name CONTAINER_NAME -v VOLUMEDIR IMAGE_NAME[root@localhost ~]# docker run -it --rm busybox
/ # ls
bin   dev   etc   home  proc  root  sys   tmp   usr   var
/ # exit
[root@localhost ~]# docker run -it --rm -v /data busybox
/ # ls
bin   data  dev   etc   home  proc  root  sys   tmp   usr   var
/ # [root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED              STATUS              PORTS     NAMES
8ba3c89bc11e   busybox   "sh"      About a minute ago   Up About a minute             silly_jennings
[root@localhost ~]# docker inspect 8ba3c89bc11e 
......省略N行"Type": "volume","Name": "0ba1343e6a02708b09335913d14e0707895c4ae8e8d3115df4e0efef2c232352","Source": "/var/lib/docker/volumes/0ba1343e6a02708b09335913d14e0707895c4ae8e8d3115df4e0efef2c2

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/900447.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900447.shtml
英文地址,請注明出處:http://en.pswp.cn/news/900447.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PyTorch中卷積層torch.nn.Conv2d

在 PyTorch 中,卷積層主要由 torch.nn.Conv1d、torch.nn.Conv2d 和 torch.nn.Conv3d 實現,分別對應一維、二維和三維卷積操作。以下是詳細說明: 1. 二維卷積 (Conv2d) - 最常用 import torch.nn as nn# 基本參數 conv nn.Conv2d(in_channe…

從 ZStack 獲取物理機與云主機信息并導出 Excel 文件

文章目錄 從 ZStack 獲取物理機與云主機信息并導出 Excel 文件環境zstack 官網客戶端封裝講解 獲取物理機信息講解 獲取云主機信息并關聯物理機講解 導出數據到 Excel 文件講解 運行主程序講解 總結最終文檔效果完整代碼 從 ZStack 獲取物理機與云主機信息并導出 Excel 文件 在…

5.好事多磨 -- TCP網絡連接Ⅱ

前言 第4章節通過回聲服務示例講解了TCP服務器端/客戶端的實現方法。但這僅是從編程角度的學習,我們尚未詳細討論TCP的工作原理。因此,將詳細講解TCP中必要的理論知識,還將給出第4章節客戶端問題的解決方案。 一、回聲客戶端完美實現 第4章…

sql server數據庫可疑修復

sql server數據庫可疑修復 從上圖可以看到數據庫nchrdb顯示可疑,導致原因為NC系統在增加公共薪資項目的時候,擴展字段報錯了,第一次遇到這種情況,折騰了很久終于解決,記下解決方案: 1,將SQL數據…

Flutter之頁面布局二

目錄: 1、列表布局1.1、基礎列表1.2、水平滑動的列表1.3、網格列表1.3、不同列表項的列表1.4、包含間隔的列表1.6、長列表 2、滾動2.1、浮動的頂欄2.2、平衡錯位滾動 1、列表布局 1.1、基礎列表 import package:flutter/material.dart;void main() > runApp(con…

ARM------硬件程序開發

硬件程序開發流程 相關硬件的工作原理 理解硬件的工作原理,明確硬件的功能和用途。 硬件連接 將硬件設備正確連接到開發板上。 編寫程序 根據硬件功能編寫相應的程序代碼。 調試驗證 通過調試工具驗證程序的正確性,確保硬件功能正常。 控制LED的…

《QT從基礎到進階·七十四》Qt+C++開發一個python編譯器,能夠編寫,運行python程序改進版

1、概述 源碼放在文章末尾 根據上一篇文章回顧下利用QtC實現了一個簡易的python編譯器,類似pycharm或vsCode這樣的編譯器,該python編譯器目前實現了如下功能: (1)支持編寫python程序 (2)編寫代…

Winform MQTT客戶端連接方式

項目中使用到Winform的數據轉發服務,所以記錄下使用到的方法。 一.創建單例模板 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleApp.Scripts {public class SingleTon&…

Windows強制刪除任何你想刪除的文件和文件夾

Windows強制刪除任何你想刪除的文件和文件夾 本教程適用于 Windows 10/11 系統,工具和命令均經過驗證。 為什么刪除會失敗? 權限不足:文件或文件夾可能需要管理員權限才能刪除。文件被占用:某個程序正在使用目標文件&#xff0c…

Jmeter如何使用MD5進行加密?

在軟件測試中,使用 JMeter 對數據進行 MD5 加密是一項常見需求,尤其是在模擬用戶登錄等涉及密碼加密的場景時。下面詳細介紹在 JMeter 里運用 MD5 加密的具體步驟。 1. 添加 BeanShell 預處理器 JMeter 本身沒有直接的 MD5 加密功能,但可以…

4-c語言中的數據類型

一.C 語?中的常量 1.生活中的數據 整數: 100,200,300,400,500 小數: 11.11 22.22 33.33 字母: a,b,c,d A,B,C,D 在 C 語?中我們把字?叫做字符. 字符?單引號引?。例如A’ 單詞…

中鈞科技通過數字賦能,編織“數字互聯網”助力數字化進程!

時間飛逝轉眼間2025年已過去四分之一,作為一名95后回顧當下的生活,忍不住感慨10年和現在的對比。發現現在的手機支付、網上掛號、APP打車、在線學習、網絡訂餐、線上協同辦公都以逐漸成為人們生活、工作的常態。也正是在這樣的常態背景下,加快…

AI重塑云基礎設施,亞馬遜云科技打造AI定制版IaaS“樣板房”

AI正在徹底重塑云基礎設施。 IDC最新《2025年IDC MarketScape:全球公有云基礎設施即服務(IaaS)報告》顯示,AI正在通過多種方式重塑云基礎設施,公有云IaaS有望繼續保持快速增長,預計2025年全球IaaS的整體規…

高效深度學習lecture01

lecture01 零樣本學習(Zero-Shot Learning, ZSL): 模型可以在沒有見過某種特定任務或類別的訓練樣本的情況下,直接完成對應的任務 利用知識遷移 模型在一個任務上訓練時學到的知識,能夠遷移到其他任務上比如,模型知道“狗”和“…

使用 iPerf 測試內網兩臺機器之間的傳輸速度

在現代網絡管理中,確保內部網絡(內網)的高效運行是至關重要的。為了評估和優化網絡性能,我們需要一種可靠的方法來測試內網中不同設備間的傳輸速率。iPerf 作為一款廣泛使用的工具,能夠幫助我們準確測量兩個節點之間的…

視頻設備軌跡回放平臺EasyCVR如何搭建公共娛樂場所遠程視頻監控系統

一、背景介紹 由于KTV、酒吧、足療店等服務場所人員流動頻繁、環境復雜,一直是治安管理的重點區域。為有效打擊 “黃賭毒”、打架斗毆、尋釁滋事等違法犯罪的活動,打造安全有序的娛樂消費環境,我國相關部門將加大對這類場所的清查與管控力度…

vue進度條組件

<div class"global-mask" v-if"isProgress"><div class"contentBox"><div class"progresstitie">數據加載中請稍后</div><el-progress class"progressStyle" :color"customColor" tex…

Css:如何解決絕對定位子元素內容被父級元素overflow:hidden屬性剪裁

一、問題描述 今天小伙伴提了一個bug&#xff0c;在點擊列表項的“…”按鈕應該出現的懸浮菜單顯示不完整&#xff1a; 二、問題排查 一般這種問題&#xff0c;是由于懸浮菜單采用的是絕對定位&#xff0c;而父級采用了overflow:hidden屬性。但需要注意的是&#xff0c;這里的…

JavaScript基礎--01-JS簡介

字面量&#xff1a;數字、字符串、布爾值 前言JavaScript背景Web前端有三層&#xff1a;發展歷史JavaScript的發展&#xff1a;蒸蒸日上 JavaScript介紹JavaScript入門易學性JavaScript是腳本語言JavaScript的組成 JavaScript 的特點特點1&#xff1a;解釋型語言特點2&#xff…

[leetcode] 面試經典 150 題——篇9:二叉樹(番外:二叉樹的遍歷方式)

二叉樹的遍歷是指按照某種順序訪問二叉樹中的每個節點。常見的遍歷方式有四種&#xff1a;前序遍歷&#xff08;Pre-order Traversal&#xff09;、中序遍歷&#xff08;In-order Traversal&#xff09;、后序遍歷&#xff08;Post-order Traversal&#xff09;以及層序遍歷&am…