首頁 >運維 >Docker >docker中-v與-mount的差別是什麼

docker中-v與-mount的差別是什麼

WBOY
WBOY原創
2021-12-29 11:50:0513136瀏覽

docker中「-v」與「-mount」的差異是:當掛載主機目錄使用「-v」時,如果宿主機上沒有指定檔案不會報錯,會自動建立指定檔案;當使用「-mount」時,如果宿主機中沒有這個文件會報錯找不到指定文件,不會自動建立指定文件。

docker中-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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn