为什么 docker 有 docker 卷和卷容器?它们之间的主要区别是什么。我已经阅读了 docker 文档,但并不能很好地理解它。
问问题
4644 次
1 回答
23
Docker 卷
您可以使用 Docker 卷在容器中创建新卷并将其挂载到主机的文件夹中。例如,您可以/var/log
像这样将 Linux 主机的文件夹挂载到容器中:
docker run -d -v /var/log:/opt/my/app/log:rw some/image
这将/opt/my/app/log
在您的容器内创建一个名为的文件夹。这个文件夹将/var/log
在您的 Linux 主机上。您可以使用它来保存数据或在容器之间共享数据。
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
此容器还将看到与上一个命令中相同的卷。您可以在许多容器之间共享卷,就像您可以共享主机的已安装文件夹一样。但它不会用数据污染你的主机——一切仍然封装在隔离的容器中。
我的资源
于 2014-06-18T18:17:42.640 回答