一篇文章教你實戰Docker容器數據卷

在上一篇中,咱們對Docker中的容器數據卷做了介紹。已經知道了容器數據卷是什麼?能幹什麼用。那麼本篇咱們就來實戰容器數據卷,Docker容器數據卷案例主要做以下三個案例

1:宿主機(也就是Docker所安裝的機器)與容器之間的映射-讓Docker可以直接訪問宿主機上面的指定目錄;

2:讀寫規則映射添加說明-數據券默認是讀寫權限的,我們可以設置只讀權限

3:卷的繼承和共享-容器1做了映射後,容器2可以繼承容器1,然後容器2也就有了映射關係

 

 

 

大家好,我是凱哥Java(kaigejava),樂於分享,每日更新技術文章,歡迎大家關注“凱哥Java”,及時瞭解更多。讓我們一起學Java。也歡迎大家有事沒事就來和凱哥聊聊~~~

 

直通車,本系列教程已發佈文章,快速到達,《Docker學習系列》教程已經發布的內容如下:

【圖文教程】Windows11下安裝Docker Desktop

【填坑】在windows系統下安裝Docker Desktop後遷移鏡像位置

【Docker學習系列】Docker學習1-docker安裝

【Docker學習系列】Docker學習2-docker設置鏡像加速器

【Docker學習系列】Docker學習3-docker的run命令幹了什麼?docker爲什麼比虛擬機快?

【Docker學習系列】Docker學習2-常用命令之啓動命令和鏡像命令

【Docker學習系列】Docker學習系列3:常用命令之容器命令

【Docker學習系列】Docker學習4-常用命令之重要的容器命令

【Docker教程系列】Docker學習5-Docker鏡像理解

【Docker教程系列】Docker學習6-Docker鏡像commit操作案例

【Docker學習教程系列】7-如何將本地的Docker鏡像發佈到阿里雲

【Docker學習教程系列】8-如何將本地的Docker鏡像發佈到私服?

「Docker學習系列教程」9-Docker容器數據卷介紹

【Docker學習教程系列彙總】筆記及遇到問題解決文章

 

1:宿主機VS容器之間映射添加容器卷

1.1:命令公式:

docker run  -it --privileged=true -v /宿主機絕對路徑目錄:/容器內目錄 鏡像名

注意這個命令是在宿主機上執行

實例:

將宿主機/tmp/host_data目錄映射到容器的/tmp/docker_data上

9a713990df14bf54c856e14cd5eaa59f.png

在d爲:bdea29051ebb的容器i的/tmp/docker_data裏面創建一個indocker.txt

0c7b8aa9e1d0086b9eaced3972d7170d.png

 

接着,我們回到宿主機中,查看tmp/host_data目錄下:

13fa34d1863ff907c65a0086afc80d45.png

同理,在宿主機上創建了inhost.txt文件,在容器中也可以看到

5200161a0fbcb43a456e7158a6893306.png

ad7d9c8b87728dc2d146fab7320e4af4.png

1.2:查看數據卷是否掛載成功

命令公式:

docker inspect 容器id

4d7c4baf44c083e753628898fa6836e2.png

再到 Mounts這個部分:

de4f7f88db8cb3e13b2c78235bf94b67.png

我們可以看到type是bind,sorce是宿主機的,destination是容器的

1.3:容器和宿主機之間數據共享

上文案例中的,indocker.txt和inhost.txt案例就是。

思考:當把容器關閉後,在宿主機的目錄中,在創建了一個c.txt文件之後,在啓動容器,那麼容器的掛載目錄中會有c.txt文件嗎 ?

答案:c.txt文件依然會在容器中

2:讀寫規則映射添加說明

當宿主機和容器掛載數據卷之後,默認的讀寫權限就是:“讀寫”

c5b839813b2273365d6283e8f6459a93.png

設置只讀權限的命令公式

docker run -it --privileged=true -v /宿主機絕對路徑目錄:/容器內目錄:ro 鏡像名稱

和默認的區別就是加上了ro參數

ro:read only.

如果在容器內寫操作會有以下提示:

d3ff58dd1379a89182a351715b9daa73.png

3:卷的繼承和共享

案例:

容器1完成和宿主機的映射

容器2繼承容器1的卷規則

8ceae4020c7c58b51be203eaaccc08f3.png

容器2繼承容器1的卷規則:

命令公式

docker run -it --privileged=true --volumes-from 父類 [name] 鏡像名

f32f8ca76173ed6c9c26e3675fb27bc1.png

5accbb6852a95e5b63edf7a73540b260.png

在u2容器中,查看tmp目錄

b5f7a2abf76097983908ddad538073a8.png

 

可以看到已經存在了。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章