Docker映象和容器資料卷

2022-01-10 00:54:20 字數 2510 閱讀 6900

映象是一種輕量級、可執行的獨立軟體包,用來打包軟體執行環境和基於執行環境開發的軟體,它包含執行某個軟體所需的所有內容,包括**、執行時、庫、環境變數和配置檔案。

union檔案系統(unionfs)是一種分層、輕量級並且高效能的檔案系統,它支援對檔案系統的修改作為一次提交來一層層的疊加,同時可以將不同目錄掛載到同乙個虛擬檔案系統下(unite several directories into a single virtual filesystem)。union 檔案系統是 docker 映象的基礎。映象可以通過分層來進行繼承,基於基礎映象(沒有父映象),可以製作各種具體的應用映象。

bootfs(boot file system)主要包含bootloader和kernel, bootloader主要是引導載入kernel, linux剛啟動時會載入bootfs檔案系統,在docker映象的最底層是bootfs。這一層與我們典型的linux/unix系統是一樣的,包含boot載入器和核心。當boot載入完成之後整個核心就都在記憶體中了,此時記憶體的使用權已由bootfs轉交給核心,此時系統也會解除安裝bootfs。

共享資源:有多個映象都從相同的 base 映象構建而來,那麼宿主機只需在磁碟上儲存乙份base映象,同時記憶體中也只需載入乙份 base 映象,就可以為所有容器服務了。而且映象的每一層都可以被共享。

將運用與執行的環境打包形成容器執行 ,執行可以伴隨著容器,但是我們對資料的要求希望是持久化的, 容器之間希望有可能共享資料。

特點:

1:資料卷可在容器之間共享或重用資料

2:卷中的更改可以直接生效

3:資料卷中的更改不會包含在映象的更新中

4:資料卷的生命週期一直持續到沒有容器使用它為止

a>命令新增:docker run -it -v /宿主機目錄:/容器內目錄 映象名:標籤 /bin/bash  

其中-v就是繫結的意思,宿主機目錄和容器內目錄如果沒有會自行建立

檢視的詳情為:

"

mounts

": [

]

此時宿主機與容器中對應的沒目錄下資料會實現共享,即使容器停止修改宿主機共享資料內容之後再次啟動當前容器資料也會共享。

b>dockerfile新增資料容器卷:

dockerfile內容

from tomcat:new

volume [

"dataa

","datab"]

cmd echo

"finished**********sucess

"cmd [

"catalina.sh

", "

run"]

docker build -f 指定的dockerfile路徑 -t 映象名稱:標籤 .

-f  顯示指定構建映象的 dockerfile 檔案

-t 指定映象的名字

.  是在指定映象構建過程中的上下文環境的目錄。

檢視對應映象啟動之後的容器卷詳情

概念:命名的容器掛載資料卷,其它容器通過掛載這個(父容器)實現資料共享,掛載資料卷的容器,稱之為資料卷容器

容器間傳遞共享(--volumes-from):

基於第二步中的映象xxcc/tomcat的dataa和datab操作

#建立父容器tom01

docker run -d -it --name=tom01 xxcc/tomcat /bin/bash

#建立子容器tom02繼承tom01  那麼容器tom01和tom02中的路徑/dataa和/datab目錄下的操作就會共享了

docker run -d -it --name=tom02 --volumes-from tom01 xxcc/tomcat /bin/bash

#建立子容器tom03繼承tom01

docker run -d -it --name=tom03 --volumes-from tom01 xxcc/tomcat /bin/bash

#刪除掉tom01之後發現tom02和tom03之間的目錄下的檔案還能共享

#而且只要有容器與前面的容器存在整合關係那麼指定目錄下的檔案都能共享

結論:容器之間配置資訊的傳遞,資料卷的生命週期一直持續到沒有容器使用它為止。

如何刪除Docker映象 容器和持久卷

刪除docker容器 刪除持久卷 參考文件 使用docker後,server上累積越來越多沒用的docker映象 容器和持久卷,會占用大量的磁碟空間。下面描述了如何通過docker命令來刪除docker映象 容器和持久卷。在docker root directory下 通常是 var lib doc...

Docker 資料卷 資料卷容器

一,概念解析 1,資料卷 資料卷就是在宿主中可以在容器之間進行共享和重用的一系列和檔案和資料夾,通過docker run v命令可以將資料卷掛載到對應的容器目錄空間,進行檔案讀取,容器卷特性如下 資料卷可以在容器之間共享和重用,容器間傳遞資料將變得高效方便 對資料卷內資料的修改會立馬生效,無論是容器...

docker 容器資料卷

直接新增容器資料卷 docker run it v 宿主機絕對路經目錄 容器內目錄 映象名 新增許可權唯讀 docker run it v 宿主機絕對路經目錄 容器內目錄 ro 映象名 1.1dockerfile構建 docker 體系結構 保留字指令 from 基礎映象,當前是基於哪個映象 mai...