为什么docker有docker卷和卷容器

为什么docker有docker卷和卷容器,docker,mount,volumes,Docker,Mount,Volumes,为什么docker有docker卷和卷容器?它们之间的主要区别是什么。我已经通读了docker文档,但不能真正理解它。docker卷 您可以使用Docker卷在容器中创建新卷,并将其装载到主机的文件夹中。例如,您可以将Linux主机的文件夹/var/log装载到容器中,如下所示: docker run -d -v /var/log:/opt/my/app/log:rw some/image 这将在容器中创建一个名为/opt/my/app/log的文件夹。这个文件夹将位于Linux主机上的/va

为什么docker有docker卷和卷容器?它们之间的主要区别是什么。我已经通读了docker文档,但不能真正理解它。

docker卷 您可以使用Docker卷在容器中创建新卷,并将其装载到主机的文件夹中。例如,您可以将Linux主机的文件夹
/var/log
装载到容器中,如下所示:

docker run -d -v /var/log:/opt/my/app/log:rw some/image
这将在容器中创建一个名为
/opt/my/app/log
的文件夹。这个文件夹将位于Linux主机上的
/var/log
。您可以使用它来持久化数据或在容器之间共享数据

Docker体积容器 现在,如果您将一个主机目录装载到您的容器中,您将以某种方式打破Docker提供的良好隔离。您将使用容器中的数据“污染”主机。为了防止这种情况,您可以创建一个专用容器来存储数据。Docker将此容器称为“数据卷容器”

此容器将有一个要在容器之间共享的卷,例如:

docker run -d -v /some/data/to/share --name MyDataContainer some/image
此容器将运行某些应用程序(例如数据库),并有一个名为
/some/data/to/share
的文件夹。您现在可以与其他容器共享此文件夹:

docker run -d --volumes-from MyDataContainer some/image
此容器还将看到与上一个命令中相同的卷。您可以在多个容器之间共享卷,就像您可以共享主机的已装入文件夹一样。但它不会用数据污染您的主机—所有内容仍然封装在隔离的容器中

我的资源

谢谢托马斯,听起来不错。他们是否使用网络协议在数据卷容器和其他容器之间进行通信?他们使用的是TCP、UDP、Unix套接字还是其他类型的操作系统通信协议?这是否允许通过网络连接数据卷容器?是否有一个简单的docker命令来显示现有的卷容器?可能数据依赖结构?卷容器与其他Docker容器非常相似。要知道哪些容器被用作卷容器,最好的方法是对它们进行适当的命名。然后,您可以使用
docker ps
命令快速判断哪些是卷容器。