docker - 我在实践中对 docker 卷使用的困惑
问题描述
我看到有些人定义了这样的卷(我只在下面放了部分 Dockefile 来清楚地解释我的问题):
WORKDIR /usr/src/app
COPY . .
VOLUME . /usr/src/app
因此,在 VOLUME 行中,.
表示上面定义的当前目录WORKDIR
。然后,VOLUME 的第二部分是/usr/src/app
。是公约吗?对我来说,这听起来像是两次定义为音量的相同路径。我误解了吗?
另一个问题是定义音量有什么好处/usr/src/app
?在项目中进行更改时是否可以在同一图像的所有容器中反映出来的好处(因为COPY . .
将项目文件夹复制到容器中)?
解决方案
这似乎是一种冗余——在 Dockerfiles 中,VOLUME
它只是将文件从映像复制到安装在该位置的卷的声明。它不能指定主机中的目录,只能在运行时完成。
VOLUME
可以采用多个参数,并在所有传递的位置声明卷 - 因此,如果您多次指定同一个目录,它应该没有实际效果,尽管列出了两个等效路径。
如果您在该行之后更改 WORKDIR 或在从该行构建的后续映像中更改可能会有所不同,因为仅在运行容器时才解析相对路径。
推荐阅读
- python - Excel到文本文件数组dtype之间不匹配('
目前我是:
- 从 Excel 工作表中提取列
- 将它们保存为矩阵
我想将新矩阵保存在文本文件中
import pandas as pd import os, sys import pand
- kubernetes - sed 将第二个值归零
- python - 在 numpy.array (A) 中查找不在 numpy.array(B) 中的行
- javascript - 挂载所有组件时如何执行功能
- excel - 删除第一个连接到空字符串
- c++ - 使用初始化列表将模板大小的数组传递给函数
- r - 使用 rlang 将变量动态插入到寓言模型中
- git - 远程分支合并的最佳实践是什么?
- typescript - 打字稿排序错误
- google-apps-script - 如何从自定义函数中调用 Google Sheet 公式?