在docker中,掛載就是用宿主機的檔案或資料夾覆蓋容器內的檔案或資料夾,可以實現宿主機和容器目錄(檔案)的雙向資料自動同步。
本教學操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。
docker掛載就是用本機檔案或資料夾覆寫容器內的檔案或資料夾。
作用:
我們cp指令來實現資料傳遞,這種方式比較麻煩;
我們透過容器目錄掛載,可以實作宿主機和容器目錄的雙向資料自動同步,能夠輕鬆實現程式碼上傳,配置修改,日誌同步等需求。
註:docker 掛載設定檔時,一定要注意不要把要掛載的設定檔的內容寫錯,否則創建容器之後,啟動不了
資料夾掛載
host上資料夾一定會覆寫container中資料夾:
host | container | mount result |
資料夾不存在/資料夾存在但為空 | 資料夾不存在/存在但為空/存在且不為空 | container中檔案被覆寫(清空) |
資料夾存在且不為空 | 資料夾不存在/存在但為空/存在且不為空 | container中資料夾內容被覆寫(原內容清空, 覆寫為host上資料夾內容) |
允許不存在的資料夾或存在的空資料夾掛載進container, container中對應的資料夾將被清空
非空資料夾掛載進container將會覆寫container中原有資料夾
檔案掛載
#檔案掛載與資料夾掛載最大的不同點在於:
docker 禁止以主機上不存在的檔案掛載到container中已經存在的檔案
檔案掛載不會對同一資料夾下的其他文件產生任何影響
存在的文件掛載進container中將會覆蓋container中對應的文件, 若文件不存在則新建
總結
host上檔案一定會覆寫container中檔案
#host | ##containermount result | |
已經存在的檔案 | 禁止行為 | |
不存在的檔案/已經存在的檔案 | 新增/覆蓋(若目錄不存在則會建立目錄) |
從上面的分析可知,資料夾掛載以整個資料夾為單位進行檔案覆蓋,故可在需要將大量檔案掛載進container時使用,另外,如果掛載一個空資料夾或不存在的資料夾,一般是做逆向使用: 即容器啟動後,可能會在容器內掛載點的資料夾下產生一些檔案(如日誌),此時,在對應的host上的資料夾內就能直接看到。
文件掛載由於只會覆蓋單個文件而不會影響container中同一資料夾下的其他文件,常常被用來掛載配置文件,以在運行時,動態的修改預設配置。
推薦學習:《
docker影片教學以上是docker中掛載是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!