docker可以掛載檔案;檔案掛載指的是將宿主機的指定檔案掛載到docker容器中的文件,檔案位置由使用者自行管理,可以利用run指令實作宿主機檔案掛載到容器內文件,語法為「docker run --name ...」。
本教學操作環境:linux7.3系統、docker19.03版、Dell G3電腦。
檔案掛載是將宿主機的指定檔案掛載到Docker容器中的文件,檔案位置由使用者自行管理
範例
docker run --name <容器名> -p 80:80 -v <宿主机文件绝对路径:容器内文件绝对路径> -d <仓库名:版本标签> # docker run --name nginx-contain -p 80:80 -v /docker_conf/nginx/html/index.html:/usr/share/nginx/html/index.html -d nginx # 宿主机文件挂载到容器内文件
ps:
1.宿主機檔案會覆寫容器內檔案
#擴充知識
docker掛載就是用本機文件或資料夾覆蓋容器內的文件或資料夾。
作用:
我cp指令來實現資料傳遞,這種方式比較麻煩;
我們透過容器目錄掛載,可以實現宿主機和容器目錄的雙向資料自動同步,能夠輕鬆實現程式碼上傳,配置修改,日誌同步等需求。
註:docker 掛載設定檔時,一定要注意不要把要掛載的設定檔的內容寫錯,否則創建容器之後,啟動不了
資料夾掛載
host上資料夾一定會覆寫container中資料夾:
#允許不存在的資料夾或是存在的空資料夾掛載進container, container中對應的資料夾將會被清空
非空資料夾掛載進container將會覆寫container中原有資料夾
檔案掛載
檔案掛載與資料夾掛載最大的不同點在於:
docker 禁止用主機上不存在的檔案掛載到container中已經存在的檔案
文件掛載不會對同一資料夾下的其他文件產生任何影響
存在的文件掛載進container中將會覆蓋container中對應的文件, 若文件不存在則新建
總結
host上檔案一定會覆寫container中檔案
host container mount result
不存在的檔案 已經存在的檔案 禁止行為
#存在的檔案 不存在的檔案/已經存在的檔案 新增/覆蓋(若目錄不存在則會建立目錄)
應用程式場景
從上面的分析可知,資料夾掛載以整個資料夾為單位進行檔案覆蓋,故可在需要將大量檔案掛載進container時使用,另外,如果掛載一個空資料夾或不存在的資料夾,一般是做逆向使用: 即容器啟動後,可能會在容器內掛載點的資料夾下產生一些檔案(如日誌),此時,在對應的host上的資料夾內就能直接看到。
文件掛載由於只會覆蓋單個文件而不會影響container中同一資料夾下的其他文件,常常被用來掛載配置文件,以在運行時,動態的修改預設配置。
推薦學習:《docker影片教學》
以上是docker可以掛載檔案嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!