为什么docker有docker卷和容器容器

时间:2014-06-18 15:16:16

标签: docker mount volumes

为什么docker有docker卷和volume容器?他们之间的主要区别是什么。我已经通过docker docs阅读了但是无法理解它。

1 个答案:

答案 0 :(得分:23)

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

此容器还将显示与上一个命令相同的卷。您可以共享多个容器之间的卷,因为您可以共享主机的已安装文件夹。但它不会用数据污染您的主机 - 所有内容仍然封装在隔离的容器中。

我的资源

https://docs.docker.com/userguide/dockervolumes/