docker中“-v”與“-mount”的區(qū)別是:掛載主機目錄使用“-v”時,如果宿主機上沒有指定文件不會報錯,會自動創(chuàng)建指定文件;當(dāng)使用“-mount”時,如果宿主機中沒有這個文件會報錯找不到指定文件,不會自動創(chuàng)建指定文件。
本教程操作環(huán)境:linux7.3系統(tǒng)、docker-1.13.1版、Dell G3電腦。
docker中-v與-mount的區(qū)別是什么
–volume(-v)
參數(shù)–volume(或簡寫為-v)只能建立bind?mount。示例:docker
docker?run?--name?$CONTAINER_NAME?-it? -v?$PWD/$CONTAINER_NAME/app:/app:rw? -v?$PWD/$CONTAINER_NAME/data:/data:ro? avocado-cloud:latest?/bin/bash
注釋:安全
命令格式:[[HOST-DIR:]CONTAINER-DIR[:OPTIONS]]]
若是指定HOST-DIR則必須是絕對路徑,若是路徑不存在則會自動建立
實例中的rw為讀寫,ro為只讀
–mount
參數(shù)–mount默認狀況下用來掛載volume,但也能夠用來建立bind?mount和tmpfs。若是不指定type選項,則默認為掛載volume,volume是一種更為靈活的數(shù)據(jù)管理方式,volume能夠經(jīng)過docker?volume命令集被管理。示例:bash
docker?run?--name?$CONTAINER_NAME?-it? --mount?type=bind,source=$PWD/$CONTAINER_NAME/app,destination=/app? --mount?source=${CONTAINER_NAME}-data,destination=/data,readonly? avocado-cloud:latest?/bin/bash
注釋:app
掛載volume命令格式:[type=volume,]source=my-volume,destination=/path/in/container[,…]
建立bind?mount命令格式:type=bind,source=/path/on/host,destination=/path/in/container[,…]
若是建立bind?mount并指定source則必須是絕對路徑,且路徑必須已經(jīng)存在
示例中readonly表示只讀
區(qū)別:
使用-v? 時,如果宿主機上沒有這個文件,也會自動創(chuàng)建,
但是如果使用–mount時,宿主機中沒有這個文件會報錯找不到這個文件,并創(chuàng)建失敗
推薦學(xué)習(xí):《docker視頻教程》