插件窝 干货文章 docker下载的镜像存在本地的哪里

docker下载的镜像存在本地的哪里

Docker 镜像 存储 Desktop 958    来源:    2025-04-28

在 Docker 中,下载的镜像默认存储在本地文件系统的特定目录中,具体位置取决于操作系统:


1. Linux 系统

  • 默认路径/var/lib/docker/
    • 镜像存储子目录:/var/lib/docker/image/<存储驱动>/
    • 例如使用 overlay2 驱动时,镜像层数据在 /var/lib/docker/overlay2/
    • 镜像元数据在 /var/lib/docker/image/<存储驱动>/imagedb/

2. macOS / Windows(Docker Desktop)

由于 macOS 和 Windows 通过虚拟机运行 Docker,镜像实际存储在虚拟机的文件系统中。
可通过以下方式访问:

macOS

  1. 通过 Docker Desktop 的 CLI 连接到虚拟机: bash docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh
  2. 镜像路径在虚拟机内:/var/lib/docker/(同 Linux)。

Windows

  1. 使用 Docker Desktop 的 WSL2 后端时,镜像存储在 WSL2 发行版中: bash wsl -d docker-desktop ls /var/lib/docker/
  2. 若使用 Hyper-V 后端,路径在 Hyper-V 虚拟磁盘中(需通过 docker-desktop-data WSL2 发行版访问)。

3. 查看镜像存储信息

  • 命令docker info
    输出中的 Docker Root Dir 显示存储根目录,Storage Driver 显示使用的驱动。

    docker info | grep -E 'Docker Root Dir|Storage Driver'
    
  • 列出镜像层docker inspect <镜像ID>
    查看 GraphDriver.Data 字段中的实际存储路径。


4. 修改默认存储路径

如果需要更改镜像存储位置(例如空间不足时):

Linux

  1. 停止 Docker 服务: bash sudo systemctl stop docker
  2. 修改配置文件 /etc/docker/daemon.json,添加: json { "data-root": "/new/path/to/docker" }
  3. 迁移旧数据(可选): bash rsync -a /var/lib/docker/ /new/path/to/docker
  4. 重启 Docker: bash sudo systemctl start docker

macOS/Windows

通过 Docker Desktop 的 GUI 设置调整虚拟磁盘大小或迁移数据。


关键注意事项

  • 直接操作 /var/lib/docker/ 下的文件可能导致数据损坏,建议通过 Docker 命令管理。
  • 存储驱动(如 overlay2aufs)会影响镜像的存储结构和性能。

如有进一步需求(如清理镜像),可结合 docker system prune 或手动删除无用镜像层。