执行docker build构建镜像失败,求助解决只读文件系统错误
解决Docker构建镜像时的只读文件系统错误
问题详情
- 此前Docker运行正常,执行命令
docker build -t feedback-node .无法构建镜像 - 报错信息:
ERROR: failed to solve: failed to read dockerfile: failed to create lease: read-only file system - 使用的Dockerfile内容:
FROM node:14 WORKDIR /app # .代表当前目录 COPY package.json . RUN npm install COPY . . EXPOSE 80 CMD ["node", "server.js"]
排查与解决步骤
1. 检查Docker守护进程的存储权限
- 重启Docker服务:
# Linux系统 sudo systemctl restart docker # Windows(PowerShell管理员模式) Restart-Service Docker # Mac 打开Docker Desktop -> 点击右上角图标 -> Restart - 若重启无效,检查Docker根目录(默认
/var/lib/docker)的文件系统权限:sudo chown -R root:root /var/lib/docker sudo chmod -R 700 /var/lib/docker
2. 验证构建上下文目录权限
- 确保执行
docker build的当前目录(.)有读写权限:chmod -R 755 ./ - 避免在只读挂载的目录(比如U盘、网络共享盘)执行构建,切换到本地可读写目录重试。
3. 清理Docker缓存与资源
- 清理Docker构建缓存:
docker builder prune -a - 清理无用镜像、容器:
docker system prune -f
4. 检查Docker Desktop设置(仅桌面版)
- 打开Docker Desktop设置 -> Resources -> File Sharing,确保当前构建目录所在的磁盘已被添加到共享列表。
- 若使用WSL2后端,检查WSL2文件系统的挂载权限,确保不是只读模式。
5. 简化构建环境
你的Dockerfile语法无问题,可尝试将Dockerfile移至空目录,仅保留必要文件(package.json、server.js、Dockerfile)后重新构建,排除目录内其他文件的干扰。
构建成功验证
若上述步骤生效,执行docker build -t feedback-node .后会输出镜像ID,也可通过以下命令查看:
docker images | grep feedback-node
内容的提问来源于stack exchange,提问作者Ishita Trivedi
相关产品推荐
相关产品推荐

