需求:
需要將Nginx的歡迎頁面也就是index.html文件進行修改。
原始方法:由于docker會為每一個容器創建其對應的文件信息,但是創建的信息內容只有其最基礎的運行信息,所以想要直接去訪問其index.html就無法做到。
使用volume:在創建容器時,使用-v指令來指定對應的虛擬卷volume。將容器的虛擬卷volume與宿主機的文件進行掛載,通過訪問宿主機的文件系統來對容器對應內容進行修改即可。
疑惑點:
1.容器的虛擬卷為什么能夠與宿主機直接進行掛載,或者說為什么修改宿主機的文件信息,可以使對應容器的內容發生修改,底層如何實現?
答:掛載(bind mount)讓同一份磁盤數據在宿主機和容器內出現兩次路徑,二者共享 inode,讀寫的是同一個底層文件。并沒有額外的“索引文件”或“映射表”在不停地來回同步——它們本來就是同一份。
2.index.html是否最初就在容器中存在?為什么原本無法訪問,而掛載后就可以訪問?