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

标签 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 主机上的 /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/

关于docker - 为什么 docker 有 docker 卷和卷容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24289257/

相关文章:

linux - 列出 Linux 中的所有挂载

docker - 在挂载 “hostpath PV ”到Pod时保留Pod目录文件

wordpress - 无法在 docker-compose 中添加对 docker volume 的写入权限

linux - 删除所有附加卷后再次启动 Amazon EC2 实例

mongodb - Docker 中的 Mongo ReplicaSet - 无法添加用户 : not master

node.js - 已安装的主机卷无法从 Azure Pipelines 中的主机写入

docker - 如何使用 docker 安装 guacenc?

docker - 无法在 docker 容器中通过 ssh 获取任何内容

docker - GCP : how to access cloud storage bucket from a VM instance

mongodb - docker-compose 与 MongoDb 和卷 - 似乎没有安装