这取自官方码头网站Dockerfile best practices ..
VOLUME
VOLUME指令应该用于公开任何数据库存储 区域,配置存储或由docker创建的文件/文件夹 容器。强烈建议您将VOLUME用于任何可变的 和/或图像的用户可维修部分。
将卷用于图像的任何可变和用户可维护部分是什么意思?是否有时候我应该/不应该使用数据库卷?如果是这样的话?这是您将数据库的实际数据内容与docker容器分开安装的地方..
答案 0 :(得分:2)
不是一个完整的答案,但我找到了一个可能有帮助的例子。从书中"用Docker构建自己的PAAS"作者:Oskar Hane,他创建了一个仅用于托管其他容器文件的容器,例如MySQL容器:
Dockerfile有一个VOLUME指令,您可以在其中定义在使用--volumes-from
属性添加此数据卷容器时向其他容器公开的目录。在我们的数据卷容器中,我们首先需要为MySQL数据添加一个目录。让我们看看我们将使用的MySQL映像,看看哪个目录用于数据存储,并将该目录暴露给我们的数据卷容器,以便我们可以拥有它:
RUN mkdir –p /var/lib/mysql
VOLUME ["/var/lib/mysql"]