如何在重新启动容器时在Docker中重复使用相同的卷?

我有一个Dockerfile在最后声明一个卷如此

VOLUME /data 

现在,当我构build并运行这个容器时,我确实得到了一个新的卷,它创build并挂载在/data
这是非常好的,但我希望能够停止这个容器,然后再次运行,并确保与其数据相同的音量重新装回。

我怎样才能做到这一点?
理想情况下,同样的命令将创build卷,如果它不存在,并重用它,如果它已经存在。

如果您想在容器的生命周期之外保存数据,则需要在容器外创build容量。 一种select是创build一个“数据容器”,如文档中所述 :

 docker create -v /data --name my-data busybox /bin/true 

这将创build一个容器(名为my-data )。 它基于busybox图像,但是因为我们使用的是create而不是run我们实际上并没有启动任何东西。 该容器仅用于向其他容器提供卷。

然后,当我们启动另一个容器时,我们可以使用--volumes-from选项访问该容器, --volumes-from docker run

 docker run --volumes-from my-data ... 

现在你的容器在容器存在后仍然存在,只要你的my-data容器没有被删除,它就会一直存在。

或者,您可以简单地将一个主机目录挂载到容器中的/data上,如下所示:

 docker run -v /path/on/host:/data ... 

这个选项也在上面链接的文档中描述。