docker可以掛載文件;文件掛載指的是將宿主機的指定文件掛載到docker容器中的文件,文件位置由用戶自行管理,可以利用run命令實現(xiàn)宿主機文件掛載到容器內(nèi)文件,語法為“docker run –name …”。
本教程操作環(huán)境:linux7.3系統(tǒng)、docker19.03版、Dell G3電腦。
docker可以掛載文件
文件掛載是將 宿主機的指定文件 掛載到 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 #?宿主機文件掛載到容器內(nèi)文件
ps:
1.宿主機文件會覆蓋容器內(nèi)文件
擴展知識
docker掛載就是用本機文件或文件夾覆蓋容器內(nèi)的文件或文件夾。
作用:
我cp命令來實現(xiàn)數(shù)據(jù)傳遞,這種方式比較麻煩;
我們通過容器目錄掛載,可以實現(xiàn)宿主機和容器目錄的雙向數(shù)據(jù)自動同步,能夠輕松實現(xiàn)代碼上傳,配置修改,日志同步等需求。
注:docker 掛載配置文件時,一定要注意不要把要掛載的配置文件的內(nèi)容寫錯,否則創(chuàng)建容器之后,啟動不了
文件夾掛載
host上文件夾一定會覆蓋container中文件夾:
允許不存在的文件夾或者存在的空文件夾掛載進container, container中對應(yīng)的文件夾將被清空
非空文件夾掛載進container將會覆蓋container中原有文件夾
文件掛載
文件掛載與文件夾掛載最大的不同點在于:
docker 禁止用主機上不存在的文件掛載到container中已經(jīng)存在的文件
文件掛載不會對同一文件夾下的其他文件產(chǎn)生任何影響
存在的文件掛載進container中將會覆蓋container中對應(yīng)的文件, 若文件不存在則新建
總結(jié)
host上文件一定會覆蓋container中文件
host container mount result
不存在的文件 已經(jīng)存在的文件 禁止行為
存在的文件 不存在的文件/已經(jīng)存在的文件 新增/覆蓋 (若目錄不存在則會創(chuàng)建目錄)
應(yīng)用場景
從上面的分析可知,文件夾掛載以整個文件夾為單位進行文件覆蓋,故可在需要將大量文件掛載進container時使用,另外,如果掛載一個空文件夾或者不存在的文件夾,一般是做逆向使用: 即容器啟動后,可能會在容器內(nèi)掛載點的文件夾下生成一些文件(如日志),此時,在對應(yīng)的host上的文件夾內(nèi)就能直接看到。
文件掛載由于只會覆蓋單個文件而不會影響container中同一文件夾下的其他文件,常常被用來掛載配置文件,以在運行時,動態(tài)的修改默認(rèn)配置。
推薦學(xué)習(xí):《docker視頻教程》