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

如何将Docker镜像内的文件系统提取到本地,无需再使用Docker

解决方案

最优方案:利用docker create直接导出合并后的完整文件系统

不需要启动容器即可完成导出,完美适配容器无法长时间运行的场景:

  • 基于目标镜像创建一个未启动的容器,记录容器ID:
    CID=$(docker create <你的镜像名:标签>)
  • 直接导出该容器对应的完整合并文件系统到tar包:
    docker export $CID -o full-rootfs.tar
  • 导出完成后可删除临时创建的容器:
    docker rm $CID
  • 直接解压tar包即可得到完整拼接好的文件系统:
    sudo tar xvf full-rootfs.tar -C /path/to/your/target/dir
    解压使用root权限可避免权限、特殊文件属性丢失。

备用方案:处理已通过docker save导出的分层镜像包

如果你已经拿到了docker save导出的分层tar包,可按镜像层顺序依次解压自动拼接完整文件系统,不需要手动处理零散文件:

  • 先将镜像包解压到临时目录:
    mkdir temp-image && tar xvf your-saved-image.tar -C temp-image
  • 按manifest记录的层顺序依次解压到目标目录(需要提前安装jq工具解析json):
# 提取层的顺序列表
layers=($(jq -r '.[0].Layers[]' temp-image/manifest.json))
# 按顺序逐层解压,自动合并文件系统
for layer in "${layers[@]}"
do
  sudo tar xvf "temp-image/$layer" -C /path/to/your/target/dir
done

如果没有安装jq,可手动打开temp-image/manifest.json文件,找到Layers数组,按数组内列出的路径顺序逐个解压即可。

注意:镜像层的解压顺序不能乱,上层文件会覆盖下层的同名文件,乱序会导致文件系统不符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 14:15:01