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

Docker容器处于STOP状态时如何访问查看其内部的指定文件?

停止状态的Docker容器完全可以访问内部文件,常用3种可靠方案,按操作复杂度从低到高排列如下:

方案1:直接使用docker cp命令拷贝目标文件

这是故障排查的首选方案,docker cp本身支持对停止状态的容器执行文件拷贝操作,不需要容器处于运行状态,也不会改动容器原有的文件数据。

  • 操作命令格式:docker cp <容器ID或容器名>:<容器内的文件绝对路径> <宿主机本地存放路径>
  • 操作示例:要拷贝ID为a1b2c3d的容器内的/var/log/nginx/error.log到当前目录,直接执行docker cp a1b2c3d:/var/log/nginx/error.log ./即可,拷贝完成后直接在宿主机打开文件排查即可。
方案2:将停止容器提交为临时镜像,启动临时容器访问

如果需要批量查看多个文件、或者需要遍历目录结构,可使用该方案:

  1. 先把停止的容器提交为一个临时镜像:docker commit <停止的容器ID/名称> tmp-debug-image
  2. 启动一个临时容器直接进入shell查看文件:docker run --rm -it --entrypoint sh tmp-debug-image
  3. 排查完成后退出临时容器,临时容器会自动删除,后续可手动删除临时镜像释放存储空间。
方案3:直接访问宿主机上的容器文件系统存储目录

如果前两种方案都无法执行(比如容器元数据损坏无法通过docker命令识别),可以直接到宿主机的Docker存储目录查找对应文件,该操作需要root权限:

  1. 先获取容器的可写层存储路径:docker inspect <停止的容器ID/名称> | grep UpperDir,返回的路径就是容器可写层的实际存储路径
  2. 直接进入返回的路径,即可看到和容器内完全一致的目录结构,可直接打开目标文件查看。

注意事项

  • 以上操作均不需要启动原故障容器,不会修改容器原有状态,不影响后续故障定位
  • 如果目标文件存放在容器挂载的volume中,需要通过docker volume inspect <volume名>获取volume在宿主机的存储路径,再到对应路径查看文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:15:03