我正在阅读Docker关于卷的用户指南部分:https://docs.docker.com/engine/userguide/containers/dockervolumes/
在第一部分,它指出了如何创建和添加卷到容器,我将调用"方法1":
您可以多次使用-v来装入多个数据卷。现在,在Web应用程序容器中安装单个卷。
$ docker run -d -P --name web -v /webapp training/webapp python app.py
这将在/ webapp的容器内创建一个新卷。
稍后再讨论数据量容器,我将调用"方法2":
如果您想要在容器之间共享某些持久性数据,或者想要从非持久性容器中使用,那么最好创建一个命名的数据卷容器,然后从中挂载数据。
$ docker create -v /dbdata --name dbstore training/postgres /bin/true
通过简单地使用-v
命令与docker run
(方法1)v.s.实现卷之间的区别是什么?使用"数据卷容器"来实现卷。 (方法2)?
似乎你只是创建一个在图像的非持久性容器的生命周期中持久的卷,如果我错了就纠正我。
答案 0 :(得分:1)
根据我的理解,至少从docker 1.12开始,卷总是一样的:一些持久性数据存储在主机的某个地方。但是管理卷有不同的方法:
docker volume create
创建卷,然后让docker管理它。它将被保存在主机系统的某个地方(例如/ var / lib / docker),但你并不关心确切的位置和方式。然后,有“技巧”(如here所述。例如:
“如果通过docker run -v my-precious-data:/ data imageName从映像运行新容器来创建命名卷,则/ data下容器内的数据将被复制到指定卷中。“
因此,您创建/管理卷的方式可能略有不同,但它基本上总是一个卷。