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

我明白在Dockerfile中使用VOLUME命令可以在容器中定义一个挂载点。

FROM centos:6 VOLUME /html 

但是我注意到,如果没有VOLUME定义,无论如何定义,仍然可以在该VOLUME点上进行安装

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

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

Dockerfile中使用的VOLUME指令不允许我们进行主机挂载,这是我们从主机OS挂载目录到容器的地方。

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

我明白在Dockerfile中使用VOLUME命令可以在容器中定义一个挂载点。

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

当在Dockerfile中定义一个卷时,它将被设置为一个映像,所以从该映像运行的每个容器都会定义该卷。

如果您在命令行(docker run -v …)中定义了卷,那么只为特定容器定义卷。