我有多个带有ruby应用的图片。我想分享已安装的宝石。是否可以使用gems安装的文件夹创建命名卷?安排它的正确方法是什么?
答案 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文件分发给用户以简化过程。