为什么docker有docker卷和容器容器?它们之间的主要区别是什么.我已经通过docker docs阅读了但是却无法理解它.
您可以使用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 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/