首页 > 解决方案 > docker run -v 即使没有 VOLUME 或 mkdir 也能工作

问题描述

“VOLUME”或“RUN mkdir /m”有什么用?

即使我没有在 Dockerfile 中指定任何这些指令,“docker run -v ${PWD}/m:/m”也可以工作。

标签: dockervolumemount

解决方案


在 Dockerfile 中,VOLUME将目录标记为外部卷的挂载点。即使 docker run 命令没有将现有文件夹挂载到该挂载点,docker 也会创建一个命名卷来保存数据。

RUN mkdir /m执行mkdir任何 Unix 系统上的操作。它m在文件系统的根目录下创建一个目录。

docker run -v ...将主机目录绑定到容器内的卷。无论挂载点是否在 Dockerfile 中声明为卷,它都会起作用,并且如果目录不存在,它也会创建目录。因此,在使用该命令之前既不需要VOLUME也不RUN mkdir需要特别需要,尽管它们可能有助于将意图传达给用户。


推荐阅读