具有数据库的Dockerfile卷 - 使用可变用户可服务部分的卷

时间:2016-02-20 10:40:51

标签: mysql docker volume dockerfile

这取自官方码头网站Dockerfile best practices ..

  

VOLUME

     

VOLUME指令应该用于公开任何数据库存储   区域,配置存储或由docker创建的文件/文件夹   容器。强烈建议您将VOLUME用于任何可变的   和/或图像的用户可维修部分。

将卷用于图像的任何可变和用户可维护部分是什么意思?是否有时候我应该/不应该使用数据库卷?如果是这样的话?这是您将数据库的实际数据内容与docker容器分开安装的地方..

1 个答案:

答案 0 :(得分:2)

不是一个完整的答案,但我找到了一个可能有帮助的例子。从书中"用Docker构建自己的PAAS"作者:Oskar Hane,他创建了一个仅用于托管其他容器文件的容器,例如MySQL容器:

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

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