插件窝 干货文章 聊聊Docker镜像保存在哪里

聊聊Docker镜像保存在哪里

Docker 镜像 存储 默认 55    来源:    2025-04-30

Docker镜像的存储位置取决于操作系统和配置方式。以下是详细分析:


一、默认存储位置

1. Linux系统

  • 默认路径/var/lib/docker/
    • 镜像层存储在:/var/lib/docker/overlay2/(默认使用overlay2驱动)
    • 镜像元数据在:/var/lib/docker/image/

2. Windows系统

  • 默认路径C:\ProgramData\Docker\
    • 镜像文件存储在:C:\ProgramData\docker\windowsfilter\

3. macOS(Docker Desktop)

  • 由于macOS通过虚拟机运行Docker,镜像实际存储在虚拟机的/var/lib/docker/中,但通过Docker Desktop抽象管理。

二、自定义存储路径

若默认分区空间不足,可修改Docker的存储根目录:

1. 修改方法

  • Linux
    编辑/etc/docker/daemon.json,添加:

    {
    "data-root": "/new/path/to/docker"
    }
    

    重启Docker服务:

    sudo systemctl restart docker
    
  • Windows/macOS(Docker Desktop)
    通过GUI设置修改:
    Settings → Resources → Advanced → Disk image location

2. 迁移现有镜像

停止Docker服务后,复制原目录到新路径:

sudo rsync -aP /var/lib/docker/ /new/path/to/docker/

三、镜像存储原理

  1. 分层存储
    镜像由多个只读层(layer)组成,存储在overlay2aufs等驱动目录中。
  2. 联合文件系统
    通过联合挂载(如OverlayFS)将多层合并为单一视图。

四、查看镜像存储信息

  1. 检查镜像层: bash docker inspect <image_id> | grep "Layers"
  2. 查看磁盘使用: bash docker system df

五、清理镜像

  1. 删除无用镜像: bash docker image prune -a
  2. 清理所有缓存: bash docker system prune -a

六、注意事项

  • 空间不足:Docker默认不会自动清理,需定期手动维护。
  • 网络镜像docker pull的镜像会下载到本地存储。
  • 临时文件:构建过程中的临时文件可能占用额外空间。

通过合理配置存储路径和定期清理,可高效管理Docker镜像存储。