1. 作用
掛載宿主機的一個目錄。
2. 案例
譬如我要啟動一個centos容器,宿主機的/test目錄掛載到容器的/soft目錄,可通過以下方式指定: # docker run -it -v /test:/soft centos /bin/bash
冒號":"前面的目錄是宿主機目錄,后面的目錄是容器內目錄。
3. 注意事項
3.1 容器目錄不可以為相對路徑
[root@localhost ~]# docker run -it -v /test:soft centos /bin/bash invalid value "/test:soft" for flag -v: soft is not an absolute path See 'docker run --help'.
3.2 宿主機目錄如果不存在,則會自動生成
3.3 宿主機的目錄如果為相對路徑呢?通過inspect查看
這次,我們換個目錄名test1試試
# docker run -it -v test1:/soft centos /bin/bash
再到宿主機上查看是否新增了一個/test1目錄,結果沒有,是不是因為我用的是相對路徑,所以生成的test1目錄在當前目錄下,結果發現還是沒有。那容器內的/soft目錄掛載到哪里去了?通過docker inspect命令,查看容器“Mounts”那一部分,我們可以得到這個問題的答案。
"Mounts": [ { "Name": "test1", "Source": "/var/lib/docker/volumes/test1/_data", "Destination": "/soft", "Driver": "local", "Mode": "z", "RW": true } ],
可以看出,容器內的/soft目錄掛載的是宿主機上的/var/lib/docker/volumes/test1/_data目錄
原來,所謂的相對路徑指的是/var/lib/docker/volumes/,與宿主機的當前目錄無關.