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

如何删除损坏Docker容器内的文件以修复无法启动的Redmine容器

故障根因

  1. 初始启动失败是因为Redmine 4.0+版本已经废弃了/usr/src/redmine/vendor/plugins作为插件目录,你将插件放入该目录后触发了启动拦截规则。
  2. 后续修改entrypoint后启动失败、日志为空,是因为你提交镜像时没有保留官方镜像默认的启动参数,仅指定了entrypoint导致启动命令不完整。

修复步骤

方案1:直接修复现有异常容器(操作最快,无需重建镜像)

  • 先停止当前不断重启的Redmine容器
docker stop sad_hodgkin
  • 直接调用bash进入容器删除错误目录,无需修改镜像配置
docker run --rm --volumes-from sad_hodgkin redmine:21_09_27 rm -rf /usr/src/redmine/vendor/plugins

这里用--volumes-from挂载异常容器的存储层,直接修改对应目录,避开容器本身entrypoint异常的问题

  • 重启容器即可恢复正常
docker start sad_hodgkin

方案2:重新构建正常的自定义镜像(适合需要固化修改的场景)

如果要保留你修改后的镜像,按以下步骤重新提交保证配置正确:

  1. 启动临时容器基于你现有的问题镜像运行,挂起避免退出
docker run -d --name temp_redmine --entrypoint sleep redmine:21_09_27 3600
  1. 确认错误目录已经删除,若有需要保留的插件移动到正确目录
docker exec temp_redmine mv /usr/src/redmine/vendor/plugins/* /usr/src/redmine/plugins/ 2>/dev/null
docker exec temp_redmine rm -rf /usr/src/redmine/vendor/plugins
  1. 提交镜像时同时指定正确的entrypoint和默认启动命令,和官方镜像配置保持一致
docker commit \
  -c 'ENTRYPOINT ["/docker-entrypoint.sh"]' \
  -c 'CMD ["rails", "server", "-b", "0.0.0.0"]' \
  temp_redmine redmine:21_09_27_fixed
  1. 清理临时资源,用新镜像启动容器即可
docker rm -f temp_redmine

验证方式

启动完成后执行docker logs <容器ID>,能看到Redmine初始化、启动Web服务的日志,且容器状态为Up即为修复成功。


内容的提问来源于stack exchange,提问作者zhongxiang qian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:57:04