为什么docker工人有docker工人和卷容器
为什么docker工人有docker工具和卷容器? 它们之间的主要区别是什么? 我已经通过docker文件阅读,但不能真正理解它。
Docker卷
您可以使用Docker卷在容器中创build一个新卷,并将其装载到主机的文件夹中。 例如,你可以把你的Linux主机的文件夹/var/log
挂载到你的容器上,如下所示:
docker run -d -v /var/log:/opt/my/app/log:rw some/image
这将在您的容器内创build一个名为/opt/my/app/log
的文件夹。 而这个文件夹将会被/var/log
到你的Linux主机上。 您可以使用它来保存数据或在容器之间共享数据。
Docker卷容器
现在,如果你将一个主机目录挂载到你的容器中,你会以某种方式破坏Docker提供的很好的隔离。 你将用容器中的数据“污染”你的主机。 为了防止这种情况,你可以创build一个专门的容器来存储你的数据。 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
该容器也将看到与前一个命令相同的音量。 您可以共享多个容器之间的卷,因为您可以共享主机的装载文件夹。 但它不会污染你的主机的数据 – 一切仍然封装在孤立的容器。