在上一篇中,咱們對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鏡像發佈到私服?
1:宿主機VS容器之間映射添加容器卷
1.1:命令公式:
docker run -it --privileged=true -v /宿主機絕對路徑目錄:/容器內目錄 鏡像名
注意這個命令是在宿主機上執行
實例:
將宿主機/tmp/host_data目錄映射到容器的/tmp/docker_data上
在d爲:bdea29051ebb的容器i的/tmp/docker_data裏面創建一個indocker.txt
接着,我們回到宿主機中,查看tmp/host_data目錄下:
同理,在宿主機上創建了inhost.txt文件,在容器中也可以看到
1.2:查看數據卷是否掛載成功
命令公式:
docker inspect 容器id
再到 Mounts這個部分:
我們可以看到type是bind,sorce是宿主機的,destination是容器的
1.3:容器和宿主機之間數據共享
上文案例中的,indocker.txt和inhost.txt案例就是。
思考:當把容器關閉後,在宿主機的目錄中,在創建了一個c.txt文件之後,在啓動容器,那麼容器的掛載目錄中會有c.txt文件嗎 ?
答案:c.txt文件依然會在容器中
2:讀寫規則映射添加說明
當宿主機和容器掛載數據卷之後,默認的讀寫權限就是:“讀寫”
設置只讀權限的命令公式
docker run -it --privileged=true -v /宿主機絕對路徑目錄:/容器內目錄:ro 鏡像名稱
和默認的區別就是加上了ro參數
ro:read only.
如果在容器內寫操作會有以下提示:
3:卷的繼承和共享
案例:
容器1完成和宿主機的映射
容器2繼承容器1的卷規則
容器2繼承容器1的卷規則:
命令公式
docker run -it --privileged=true --volumes-from 父類 [name] 鏡像名
在u2容器中,查看tmp目錄
可以看到已經存在了。