Docker目录挂载的总结

Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定。

譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定:

这样在容器启动后,容器内会自动创建/soft的目录。通过这种方式,我们可以明确一点,即-v参数中,冒号”:”前面的目录是宿主机目录,后面的目录是容器内目录。

貌似简单,其实不然,下面我们来验证一下:

1.容器目录不可以为相对路径

运行以上代码,会提示如下:

直接报错,提示wenlie不是一个绝对路径,所谓的绝对路径,必须以下斜线“/”开头。

2. 宿主机目录如果不存在,则会自动生成

3. 宿主机的目录如果为相对路径呢?

运行以上命令,会报错。

那么,我们去掉后面的/src再试试

此时,运行成功,我们使用docker inspect命令查看,可以发现:

可以看出,这里的相对路径指的是/var/lib/docker/volumes/路径,而不是宿主机的当前目录。

4. 如果只是-v指定一个目录,这个又是如何对应呢?

我们运行如下命令:

然后通过docker inspect可以看出: