卷
卷是由Docker管理,非Docker進程不應該修改文件系統這一部分,卷是在Docker中保留數據的最佳方式。
創建卷命令:docker volume create --名稱
將卷應用於容器的時候,此目錄是裝入容器的目錄,類似綁定掛載的工作方式,除了卷由Docker管理與主機核心功能隔離。
刪除未被容器使用的卷命令:docker volume prune
匿名卷在首次裝入容器的時候未給出明確的名稱,因此Docker為它們創建了一個隨機名稱,該名稱在給定的Docker主機中保證是唯一的。除了名稱外,命名和匿名卷的行為方式是一樣的。
卷還支持使用驅動程序,這些驅動程序允許您將數據存儲在遠程主機或雲提供程序上,以及其它可能性。
卷只能是目錄,不能是單個文件,配置文件在主機文件修改后,容器會及時應用到,反之亦可。
綁定掛載
可以存儲在主機系統的任意位置,Docker主機或Docker容器上的非Docker進程可以隨時修改它們。
主機目錄必須是一個完整的路徑,該文件在綁定過程中如果不存在會自動創建,它們依賴於具有特定目錄結構的主機文件系統。如果你正在開發新的Docker應用程序,請考慮使用命名卷。你無法使用Docker Cli命令直接管理綁定裝入。
注意:使用綁定掛載注意你可以通過容器中運行的進程修改主機文件系統,包括創建,修改,刪除重要的系統文件目錄或文件。
tmpfs
掛載僅存儲在主機系統的內存中,永遠不會寫入文件系統。主要可以在容器的生命周期供容器使用,以存儲非持久狀態的敏感信息。
綁定這種方式,可以是文件和目錄,經測試.net core綁定單個配置文件appsettings.json,在主機目錄修改后,需要啟動容器才會生效。
使用綁定掛載或卷的提示
1:如果將空卷裝入容器中存在文件或目錄的目錄中,則會將這些文件或目錄復制到卷中,同樣,如果啟動容器的時候指定尚不存在的卷則會自動創建一個空卷。這是預先填充另一個容器所需數據的好方法。
2:如果將綁定掛載或非空卷裝入容器中存在的某些文件或目錄的目錄中,則這些文件或目錄會被裝在模糊,也就是說綁定掛載或非空卷會遮蓋容器中的文件內容,隱藏的文件內容不會被刪除或更改,但是在安裝綁定掛載或卷的時候無法訪問。
