Docker容器的資料卷

SportSky發表於2022-05-10

一、資料卷概念

1、資料卷是宿主機中的一個目錄或檔案

2、當容器目錄和資料卷目錄繫結後,對方的修改會立即同步

3、一個資料卷可以被多個容器同時掛載

4、一個容器也可以掛載多個資料卷

簡單理解:有點類似我們的Redis裡面的rdb和aof檔案

 

二、資料卷的作用

1、容器資料持久化

2、外部機器和容器間接通訊

3、容器之間資料交換

三、配置資料卷

docker run -id --privileged=true -v /宿主機絕對路徑目錄:/容器內目錄 --name=容器名 映象名

注:檔案目錄不存在時會自動建立檔案目錄

 

 四、容器卷和主機互通互聯

1、在容器內/tmp/myhostdata目錄下建立檔案1.txt,並向檔案寫入內容,然後檢視宿主機/myhostdata是否建立了同樣檔案1.txt

 2、在宿主機內/myhostdata目錄下建立檔案2.txt,並向檔案寫入內容,然後檢視容器/tmp/myhostdata目錄是否建立了同樣檔案2.txt

 3、檢視資料卷是否掛載成功

docker inspect 容器ID

 五、容器卷ro和rw讀寫規則

說明:預設情況下,容器卷是可讀可寫的,但是在特殊場景下,我們想要容器例項內部被限制,只能讀取不能寫,也就是容器內只能讀取宿主機檔案資料,如果宿主機寫入內容,可以同步給容器內,容器可以讀取到。

# 可讀可寫
docker run -id --privileged=true -v /宿主機絕對路徑目錄:/容器內目錄:rw --name=容器名 映象名

# 只能讀不能寫
docker run -id --privileged=true -v /宿主機絕對路徑目錄:/容器內目錄:ro --name=容器名 映象名

六、容器卷之間的繼承

步驟一:容器1完成和宿主機的對映

 

 

步驟二:容器2繼承容器1的卷規則

docker run -it --privileged=true --volumes-from 父類  --name=u2 ubuntu

 

 

說明:當容器1掛掉之後,宿主機和容器2之間依舊可以正常同步資料卷內容,當容器1重啟之後,會自動同步宿主機和容器2的資料卷,只要實現了容器繼承卷的規則,不管是在哪個容器或者宿主機上更新資料卷內容,都會同步其他幾個資料卷

 

相關文章