插件窝 干货文章 Docker打包的image保存在哪里

Docker打包的image保存在哪里

Docker 存储 路径 镜像 918    来源:    2025-04-29

Docker 镜像的存储位置取决于操作系统和 Docker 的配置。以下是不同系统下的默认存储路径及管理方法:


一、默认存储路径

1. Linux 系统

  • 默认路径: /var/lib/docker/
    • 镜像文件存储在 /var/lib/docker/overlay2/(如果使用 overlay2 存储驱动)。
    • 具体信息可通过 docker info 查看: bash docker info | grep "Docker Root Dir"

2. Windows 系统

  • 默认路径: C:\ProgramData\Docker\windowsfilter\
    • 适用于 Windows 容器(WSL2 下的 Docker 实际存储在 Linux 子系统中)。

3. macOS

  • 默认路径: Docker 数据存储在虚拟机的虚拟磁盘中(通过 hyperkit 运行)。
    • 实际路径隐藏在 macOS 文件系统中,可通过以下命令访问: bash screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
    • 更简单的方式是通过 Docker Desktop 的界面查看磁盘使用情况。

二、查看镜像存储信息

  1. 列出所有镜像

    docker images
    
  2. 查看镜像详细信息(包括存储层):

    docker inspect <IMAGE_ID>
    

    输出中的 GraphDriver.Data 字段会显示实际存储路径(如 LowerDirUpperDir)。

  3. 检查存储驱动

    docker info | grep "Storage Driver"
    

三、修改默认存储路径

如果默认路径磁盘空间不足,可以迁移 Docker 数据:

Linux 示例(修改 data-root

  1. 停止 Docker 服务: bash sudo systemctl stop docker
  2. 编辑配置文件 /etc/docker/daemon.jsonjson { "data-root": "/new/path/to/docker" }
  3. 复制旧数据到新路径: bash rsync -a /var/lib/docker/ /new/path/to/docker
  4. 重启 Docker: bash sudo systemctl start docker

Windows/macOS

  • 通过 Docker Desktop 的 Settings > Resources > Disk image location 修改路径。

四、清理镜像释放空间

  1. 删除未使用的镜像: bash docker image prune -a
  2. 删除所有悬空(dangling)镜像: bash docker image prune
  3. 清理构建缓存: bash docker builder prune

五、注意事项

  1. 权限问题:直接操作 /var/lib/docker/ 可能需要 sudo
  2. 存储驱动差异:不同驱动(如 overlay2aufsdevicemapper)路径结构不同。
  3. WSL2 注意事项:Windows 的 Docker Desktop 使用 WSL2 时,数据实际存储在 WSL 发行版中(如 \\wsl$\docker-desktop-data)。

通过以上方法,你可以快速定位和管理 Docker 镜像的存储位置。如有其他问题,欢迎进一步提问!