docker - docker run -v 即使没有 VOLUME 或 mkdir 也能工作
问题描述
“VOLUME”或“RUN mkdir /m”有什么用?
即使我没有在 Dockerfile 中指定任何这些指令,“docker run -v ${PWD}/m:/m”也可以工作。
解决方案
在 Dockerfile 中,VOLUME
将目录标记为外部卷的挂载点。即使 docker run 命令没有将现有文件夹挂载到该挂载点,docker 也会创建一个命名卷来保存数据。
RUN mkdir /m
执行mkdir
任何 Unix 系统上的操作。它m
在文件系统的根目录下创建一个目录。
docker run -v ...
将主机目录绑定到容器内的卷。无论挂载点是否在 Dockerfile 中声明为卷,它都会起作用,并且如果目录不存在,它也会创建目录。因此,在使用该命令之前既不需要VOLUME
也不RUN mkdir
需要特别需要,尽管它们可能有助于将意图传达给用户。
推荐阅读
- python - Pandas 对数据进行分组,直到第一次出现模式
- php - 尝试使用 PHP 返回 json 数据
- javascript - 调用`event.preventDefault`时我做错了什么?
- python - Heroku 上的 Scrapy 爬虫返回 503 服务不可用
- c - -2^31 作为最小整数,为什么?
- c# - 导出 Excel 报表服务器时,现有连接被远程主机强行关闭
- python - 从 PyTorch 中的网络输出计算梯度会出错
- svg - 为什么渲染一组 svg 与一个 svg 不同?
- python - 如何在 python 3.6 中使用分布式包?
- java - 在 Android 5 中支持 JAVA-8 Jar - React Native