在DockerFile中定义VOLUME挂载点而不是adhoc cmd-line -v的目的是什么?

时间:2015-10-15 12:36:22

标签: docker dockerfile

据我所知,在Dockerfile中使用VOLUME命令,定义容器内的挂载点。

FROM centos:6
VOLUME /html

但是我注意到没有VOLUME定义,无论定义它还是可以挂载在VOLUME点上

docker run -ti -v /path/to/my/html:/html centos:6

在dockerfile中定义VOLUME挂载点的目的是什么?我怀疑它是为了可读性所以人们可以阅读Dockerfile并立即知道要安装的是什么?

2 个答案:

答案 0 :(得分:1)

VOLUME中使用的

Dockerfile指令不允许我们进行主机挂载,即我们将目录从主机操作系统挂载到容器中。

然而,其他容器仍然可以使用--from-container=<container name>中的VOLUMES指令创建的Dockerfile装载到容器的卷中

答案 1 :(得分:0)

  

我理解在Dockerfile中使用VOLUME命令,   在容器中定义一个挂载点。

那不对。在这种情况下,卷是为图像定义的,而不是为容器定义的。

当在Dockerfile中定义了一个卷时,它会为图像设置,因此从该图像运行的每个容器都会定义该卷。

如果在命令行中定义卷(docker run -v ...),则仅为该特定容器定义卷。