VOLUME指令应用于公开由docker容器创建的任何数据库存储区域,配置存储或文件/文件夹.强烈建议您将VOLUME用于图像的任何可变和/或用户可维修部分.
你会将你的代码存储在卷中吗?
比如你的jar文件.在不重建映像的情况下部署应用程序可能会有点方便.
如果将代码存储在卷中,是否有任何考虑因素?喜欢表现,安全或其他.
我不建议VOLUME在Dockerfile中使用当前版本的docker的任何语句(当前是自引入命名卷以来的任何版本的docker).包含VOLUME命令有多个缺点,包括:
docker volume ls输出,如果你需要内部的数据很难找到和重用我建议将数据放在您在docker run命令行或docker-compose.yml中定义的卷中.在那里定义的卷可以有一个名称或映射回到docker主机上的路径.您可以创建任何文件夹或文件卷,而无需在Dockerfile中定义它.此步骤中定义的卷不会影响图像,允许您扩展图像,而不会被锁定而无法更改目录.
对于您的代码,如果在应用程序开发期间解释(例如javascript)或已编译(例如jar文件),则将代码注入卷是一种常见的最佳实践.您将在容器(而不是Dockerfile)上定义卷,并使用相同的文件名覆盖也复制到映像中的代码或二进制文件.这使您可以快速迭代开发而无需频繁重建映像.根据应用程序的不同,您可以重新加载代码,否则,重新启动容器应该是查看最新更改所需的全部内容.开发完成后,您可以使用当前代码重建映像,并将其发送给可以使用它的人,而无需代码的卷装入.
如果您想了解更多有关此内容的详细信息,我还在博客中写了我对Dockerfiles中卷的担忧.
| 归档时间: |
|
| 查看次数: |
1757 次 |
| 最近记录: |