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

Docker环境下无法丢弃my.cnf修改、执行git pull报错设备或资源忙怎么办?

问题原因

报错error: unable to unlink old 'docker/dev/db/my.cnf': Device or resource busy的核心原因是该文件正被运行中的Docker容器挂载占用,MySQL容器进程持有文件锁,Git没有权限直接修改被占用的挂载文件。

解决步骤
  • 第一步:停止占用该文件的Docker容器
    可以先执行以下命令查看持有该文件锁的进程:
    lsof docker/dev/db/my.cnf
    根据返回的进程信息找到对应的MySQL容器,执行停止命令:
    docker stop <容器ID/容器名>
    如果是使用Docker Compose编排的项目,也可以直接在项目根目录停止所有关联容器:
    docker compose down
    (旧版本Docker Compose请使用docker-compose down)
  • 第二步:丢弃文件修改
    容器停止后文件锁自动释放,此时执行Git重置命令即可丢弃本地改动:
    git reset --hard HEAD
  • 第三步:拉取最新代码
    git pull
  • 第四步:恢复容器运行
    代码拉取完成后重新启动项目容器即可:
    docker compose up -d
临时规避方案(无需停止容器场景)

如果当前业务不允许停止运行中的容器,可以临时关闭Git对该文件的本地修改跟踪,避免后续Git操作冲突:

git update-index --assume-unchanged docker/dev/db/my.cnf

后续需要恢复对该文件的修改跟踪时执行:

git update-index --no-assume-unchanged docker/dev/db/my.cnf

内容的提问来源于stack exchange,提问作者Afsana Jamal Mumu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:39:04