Dockerfile卷与数据库 – 使用卷为可变用户可服务的部分

这是从官方docker网站Dockerfile最佳实践中获取的 。

VOLUME指令应该被用来显示你的docker容器创build的任何数据库存储区域,configuration存储或者文件/文件夹。 强烈build议您将VOLUME用于图像的任何可变和/或用户可用部分。

什么是使用音量的图像的任何可变的和用户可服务的部分? 有时候我应该/不应该使用数据库卷吗? 如果是这样的话 这是在哪里安装与docker容器分开的数据库的实际数据内容..

不是一个完整的答案,但我find了一个可能有所帮助的例子。 从Oskar Hane的书“用Docker构build自己的PAAS”开始,他创build了一个容器,用于托pipe其他容器(如MySQL容器)的文件:

有一个用于Dockerfile的VOLUME指令,当你使用--volumes-from属性添加这个数据卷容器时,你可以定义哪些目录公开给其他容器。 在我们的数据卷容器中,我们首先需要为MySQL数据添加一个目录。 让我们来看看我们将用于查看哪个目录用于数据存储的MySQL映像,并将该目录展示给我们的数据卷容器,以便我们拥有它:

 RUN mkdir –p /var/lib/mysql VOLUME ["/var/lib/mysql"]