亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

用一個實際例子理解Docker volume工作原理

發布時間:2020-08-07 21:31:39 來源:ITPUB博客 閱讀:148 作者:i042416 欄目:云計算

要了解Docker Volume,首先我們需要理解Docker文件系統的工作原理。Docker鏡像是由多個文件系統的只讀層疊加而成。當一個容器通過命令docker run啟動時,Docker會加載只讀鏡像層并在鏡像棧頂部添加一個讀寫層。如果運行中的容器修改了現有的一個已經存在的文件,那該文件將會從讀寫層下面的只讀層復制到讀寫層,但是該文件的只讀版本依然存在,只不過已經被讀寫層中該文件的副本所隱藏。

當刪除Docker容器,并通過該鏡像重新啟動時,之前在讀寫層的更改將會丟失。在Docker中,只讀層及在頂部的讀寫層的組合被稱為Union File System(聯合文件系統),簡稱UnionFS,它用到了一個重要的資源管理技術,叫寫時復制。寫時復制(copy-on-write),也叫隱式共享,是一種對可修改資源實現高效復制的資源管理技術。對于一個重復資源,若不修改,則無需立刻創建一個新的資源,該資源可以被共享使用。當發生修改的時候,才會創建新資源。這會大大減少對于未修改資源復制的消耗。其實COW這個概念對編程人員來說一點也不陌生,廣泛用在各種領域,比如ABAP里對于內表(Internal table)的拷貝動作,Java字符串的拷貝實現等等。Docker基于UnionFS去創建containers。

我們下面看一個實際例子。

使用命令行docker run --help查看這個命令的幫助文檔。 -h 的作用是指定容器的主機名。


用一個實際例子理解Docker volume工作原理

使用命令行創建一個新的容器:

docker run -it --name jerry-container-test -h CONTAINER -v /data busybox /bin/sh
名稱為jerry-container-test, 用-v創建了一個volume /data


用一個實際例子理解Docker volume工作原理

創建完畢之后,在容器里執行cd /data進入這個目錄,這個時候還是空的。


用一個實際例子理解Docker volume工作原理

docker ps查看容器狀態:


用一個實際例子理解Docker volume工作原理

現在我想知道主機上為了實現這個volume,使用了哪個internal目錄。

用命令docker inspect jerry-container-test查看關鍵字"volumes":


用一個實際例子理解Docker volume工作原理

得到了容器里/data在主機上實現的目錄:

/var/lib/docker/volumes/96aa969033ee7e6d7ff607a0a47de5a5866613a422518ed3f86fee6240bae8cc/_data

現在我在主機上使用touch命令在這個目錄下直接創建一個文件:

sudo touch /var/lib/docker/volumes/96aa969033ee7e6d7ff607a0a47de5a5866613a422518ed3f86fee6240bae8cc/_data/test.s


用一個實際例子理解Docker volume工作原理

現在切換到容器里,用ls也能看到直接在主機上用touch命令在internal folder里創建的文件了。


用一個實際例子理解Docker volume工作原理

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

用一個實際例子理解Docker volume工作原理


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

诸城市| 喜德县| 平湖市| 西藏| 宁陕县| 娄底市| 龙陵县| 凭祥市| 宜昌市| 遵化市| 栾川县| 福海县| 大安市| 保山市| 南召县| 水富县| 保亭| 横峰县| 湘阴县| 梁河县| 财经| 微博| 宜兴市| 抚州市| 阳原县| 青州市| 滦平县| 塔城市| 绵竹市| 南丰县| 黄浦区| 资讯| 白城市| 鹿泉市| 石屏县| 武陟县| 张家口市| 武山县| 凤冈县| 韶山市| 平泉县|