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

执行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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 09:52:10