Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 为什么将数据容器与数据库容器分离比从磁盘装入数据卷更好_Database_Docker_Boot2docker - Fatal编程技术网

Database 为什么将数据容器与数据库容器分离比从磁盘装入数据卷更好

Database 为什么将数据容器与数据库容器分离比从磁盘装入数据卷更好,database,docker,boot2docker,Database,Docker,Boot2docker,因此,在docker社区中,将数据容器与使用该数据的数据库容器分离是非常常见的。我听说的最大原因是,如果需要更新数据库,仍然可以从新的数据库容器访问相同的数据。我很难理解为什么这比仅仅将卷从磁盘装载到数据库容器要好,如果您更新了容器,请将相同的卷装载到新的数据库容器中。这些过程基本上是一样的。是否有我看不到的用例 此链接试图解释其好处,但装载卷也可能会发生同样的情况。您可以将--link链接到数据容器(或附加到中),即使您已删除数据库容器。这将(可链接)数据容器的生命周期与数据库容器的生命周期

因此,在docker社区中,将数据容器与使用该数据的数据库容器分离是非常常见的。我听说的最大原因是,如果需要更新数据库,仍然可以从新的数据库容器访问相同的数据。我很难理解为什么这比仅仅将卷从磁盘装载到数据库容器要好,如果您更新了容器,请将相同的卷装载到新的数据库容器中。这些过程基本上是一样的。是否有我看不到的用例


此链接试图解释其好处,但装载卷也可能会发生同样的情况。

您可以将
--link
链接到数据容器(或
附加到
中),即使您已删除数据库容器。这将(可链接)数据容器的生命周期与数据库容器的生命周期分离。

这只是提供抽象的一种方式。引用卷的容器消失后,卷将自动删除。有用的清理功能。引用卷的容器消失后,卷不会自动删除。这是真的,但我的问题是为什么我们会使用数据容器?您可以只使用主机文件系统中的数据文件夹,并将其装载到数据库容器或任何其他容器中。这也使数据库的生命周期与数据的生命周期脱钩。如果您对主机拥有完全控制权,那么除了主机卷路径只声明一次之外,可能根本没有其他意义。但是如果我不控制主机,但作为docker云的最终用户,我可能无法指定主机卷路径。云运营商可能会为我提供一个类似fig的模式来声明我的需求,而我要声明的只是容器卷路径,而调度程序决定主机卷路径。实际上,我认为我错了。参见cpuguy83的解释: