docker中「-v」與「-mount」的差異是:當掛載主機目錄使用「-v」時,如果宿主機上沒有指定檔案不會報錯,會自動建立指定檔案;當使用「-mount」時,如果宿主機中沒有這個文件會報錯找不到指定文件,不會自動建立指定文件。
本教學操作環境:linux7.3系統、docker-1.13.1版、Dell G3電腦。
docker中-v與-mount的區別是什麼
--volume(-v)
參數--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
#參數--mount預設狀況下用來掛載volume,但也能夠用來建立bind mount和tmpfs。若是不指定type選項,則預設為掛載volume,volume是一種更為靈活的資料管理方式,volume能夠經過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則必須是絕對路徑,且路徑必須已經存在
範例中readonly表示唯讀
區別:
使用-v 時,如果宿主機上沒有這個文件,也會自動創建,
但是如果使用--mount時,宿主機中沒有這個文件會報錯找不到這個文件,並創建失敗
推薦學習:《docker影片教學》
以上是docker中-v與-mount的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!