docker中-v與-mount的區(qū)別是什么

docker中“-v”與“-mount”的區(qū)別是:掛載主機目錄使用“-v”時,如果宿主機上沒有指定文件不會報錯,會自動創(chuàng)建指定文件;當(dāng)使用“-mount”時,如果宿主機中沒有這個文件會報錯找不到指定文件,不會自動創(chuàng)建指定文件。

docker中-v與-mount的區(qū)別是什么

本教程操作環(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視頻教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊7 分享