是否可以在docker build期间通过Dockerfile创建命名卷?

时间:2017-01-06 06:06:00

标签: docker dockerfile

我有多个带有ruby应用的图片。我想分享已安装的宝石。是否可以使用gems安装的文件夹创建命名卷?安排它的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

我会通过创建一个图像来解决这个问题,我将所有宝石作为卷安装/更新。您需要在Dockerfile中关注gems容器:

VOLUME /PATH/TO/GEMS

然后使用共享卷在所有其他容器中导入这些gem:

docker run --volumes-from CONTAINER_WITH_GEMS --name CONTAINER_NAME IMAGE

多个容器还可以共享一个或多个数据卷。但是,写入单个共享卷的多个容器可能会导致数据损坏。鉴于此,如果您可以确保您的应用程序设计为写入共享数据存储,我们也可以通过其他方式解决此问题。

答案 1 :(得分:0)

简短的回答是否定的。在Dockerfile中,您无法指定命名卷。

但是,无论docker中的参数如何运行,您都可以指定要创建为卷的容器文件夹。您可以使用VOLUME指令。

但是您必须告诉用户将其本地目录映射到卷。您可以将docker-compose.yml文件分发给用户以简化过程。