Docker-V 详解

 

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/,与宿主机的当前目录无关.
 
 
posted @ 2020-10-18 13:29  brady-wang  阅读(1535)  评论(0编辑  收藏  举报