You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

容器无法找到卷内文件:‘No such file or directory’问题咨询

问题原因解析

这是Docker VOLUME指令的特性导致的:

  • 当Dockerfile中执行VOLUME /myVol时,构建阶段就会立即创建一个临时匿名卷并挂载到/myVol路径。
  • 后续的RUN echo "Hello World" > /myVol/message.txt操作,实际是把文件写入了这个临时挂载的卷中,而非镜像的底层文件系统。
  • 镜像构建完成后,这个临时卷会被直接丢弃,镜像内的/myVol目录本身是空的。
  • 启动容器时,Docker会重新创建一个全新的卷(匿名卷或你指定的卷)挂载到/myVol,自然找不到之前RUN生成的文件。

修正方案示例

如果希望容器启动时能看到message.txt,可以调整指令顺序,先在镜像中生成文件,再声明卷:

FROM ubuntu:latest
RUN echo "Hello World" > /myVol/message.txt
VOLUME /myVol
CMD cat /myVol/message.txt

这种情况下,镜像构建时/myVol的文件会被保存在镜像文件系统中,第一次启动容器时,Docker会自动将镜像里/myVol的内容复制到新创建的卷中,就能正常读取文件了。

内容的提问来源于stack exchange,提问作者Shyam Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:05:38