docker學習總結(三)

今天來看看容器對應的文件系統

如下圖,首先我們可以看到當前總共有21個container(22是包含了CONTAINER title的),那這22個container在宿主機上都保存在哪裏呢?從右圖可以看到所有的container都保存在宿主機/mnt/sda1/var/lib/docker/containers目錄下面

這裏補充一點,左圖看到的containerID是12位的,而右圖的containerID非常長,實際上右圖是容器的全稱ID,而我們通常使用其前12位代表容器ID。這通過docker inspect -f '{{.ID}}' containerID命令也可以進行檢驗。

接下來,我們看看如果要上傳文件到container或者從container中取文件如何操作。

執行docker exec -it containerID /bin/bash進入container,在/opt/webapp目錄下創建一個文件2020217.txt,然後我們去宿主機上看看該文件在哪裏。

搜索文件名可以看到該文件有兩個,分別位於以下目錄

/mnt/sda1/var/lib/docker/overlay2/f01c636d904fda1625b5c972ae5e9d422ef7622f31d6a162fac652347e1aceed/merged/opt/webapp

/mnt/sda1/var/lib/docker/overlay2/f01c636d904fda1625b5c972ae5e9d422ef7622f31d6a162fac652347e1aceed/diff/opt/webapp

那這兩個目錄對應什麼呢?查詢知容器對應有4個目錄,LowerDir、MergedDir、UpperDir、WorkDir,其中LowerDir爲只讀的鏡像層,因image layer可以分爲多層,故LowerDir可以有多個目錄;MergedDir爲容器的掛載層,即顯示出來的文件系統層;UpperDir爲數據讀寫層,所有對容器數據的修改都發生在這一層,WorkDir爲OverlayFS的工作目錄。

知道以上這些,如果我們要進行上傳下載文件,就很方便了。

 

 

 

 

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