Docker挂载本地目录到容器后执行ls报错:Stale file handle
Docker挂载目录出现"Stale file handle"错误的常见原因
你执行的挂载命令:
docker run -it -v ${PWD}:/logs myimage:latest bash
进入容器后执行ls /logs时出现错误:
bash-4.4$ ls /logs ls: cannot open directory '/logs': Stale file handle
导致该错误的常见原因如下:
- 宿主机挂载目录被修改:容器运行期间,宿主机上的
${PWD}目录被删除、重命名或移动到其他路径,容器内的挂载点无法再找到原目录,从而触发无效文件句柄错误。 - 存储设备异常:本地目录所在的存储介质(如外接硬盘、U盘)被意外卸载,或者出现IO故障,导致容器挂载点的底层存储不可用。
- Docker挂载机制异常:Docker daemon进程出现异常、挂载缓存冲突,或者容器内进程持有了旧的文件句柄,都可能导致挂载点失效。
- 安全策略限制:宿主机的SELinux或AppArmor规则如果严格限制了容器对挂载目录的访问,在某些场景下也可能间接引发此类无效句柄问题(这类情况通常伴随权限相关提示,但特殊场景下会表现为文件句柄失效)。
内容的提问来源于stack exchange,提问作者laplasz
相关产品推荐
相关产品推荐

