Docker Desktop磁盘镜像位置用途超详细解析

 更新时间:2025年06月30日 10:18:15   作者:涛哥依旧在  
这篇文章主要介绍了Docker Desktop磁盘镜像位置用途的相关资料,Docker Desktop中docker_data.vhdx虚拟磁盘的作用,用于存储容器、镜像、卷等数据,文中介绍的非常详细,需要的朋友可以参考下

在设置里面的资源中有个磁盘镜像位置的配置,这个目录默认位置是:C:\Users\haitao.luo\AppData\Local\Docker\wsl\disk,这里面对应的是一个docker_data.vhdx,虚拟磁盘文件,因为是在c盘上,所以可能后面下载镜像或创建容器后可能占用不少资源,因此我就给他挪了个位置。

那么这个docker_data.vhdx虚拟磁盘文件到底是干啥的,存了哪些内容呢?

Docker Desktop 的磁盘镜像(Disk Image)是用于存储容器、镜像、卷和其他 Docker 相关数据的虚拟磁盘文件。它的作用类似于一个虚拟硬盘,Docker 引擎(包括容器、镜像、网络和卷等)的所有数据都存储在其中。

这下明白了吧。还有一点vhdx虚拟磁盘文件,在我前面的文章里面也提到了wsl2管理发行版是不是也是虚拟磁盘文件了?这个在本文最后类比一下。

主要作用:

  • 存储 Docker 数据

    • 镜像(Images):下载的 Docker 镜像(如 ubuntunginx 等)都存储在这里。

    • 容器(Containers):运行的容器及其数据(如文件系统改动)默认保存在此。

    • 卷(Volumes):如果使用 Docker 卷(Volumes)且未绑定到主机目录,数据也会存储在此。

    • 其他数据:网络配置、Docker 内部状态等。

  • 隔离文件系统

    • Docker 使用 Linux 内核的特性(如 overlay2),需要一个专用的存储空间来管理分层文件系统,而 Windows/macOS 通过 Hyper-V 或 QEMU 虚拟化运行 Linux 内核,因此需要一个虚拟磁盘文件来模拟 Linux 的文件系统。

  • 限制资源占用

    • Docker Desktop 允许你配置该磁盘镜像的最大大小(默认为 64GB 或更高,具体版本不同),防止 Docker 占用过多主机磁盘空间。

默认存储位置:

  • WindowsC:\Users\<YourUser>\AppData\Local\Docker\wsl\data\ext4.vhdx

  • macOS~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw(或类似路径)

为什么需要管理它?

  • 磁盘空间不足:如果镜像、容器或卷过多,可能导致虚拟磁盘文件膨胀,占用主机空间。

  • 性能优化:将其放在 SSD 上可以提高 Docker 的 I/O 性能。

  • 迁移或备份:可能需要移动该文件以释放系统盘空间或备份数据。

如何管理?

  • 调整大小

    • 在 Docker Desktop 设置中直接调整最大磁盘限制(Windows/macOS 新版支持)。

  • 清理空间

    • 使用 docker system prune 删除无用的镜像、容器和缓存。

  • 更改存储位置(Windows):

    • 可通过 WSL 导出/导入或修改 Docker Desktop 配置(复杂,需谨慎操作)。

  • macOS

    • 较难直接迁移,建议通过 Docker Desktop 的清理工具或重置功能。

小结

Docker Desktop 的磁盘镜像是一个虚拟硬盘文件,用于集中存储所有 Docker 相关的数据。理解它的作用有助于合理管理磁盘空间和优化 Docker 性能。如果发现系统盘空间不足,可以定期清理或调整其大小。

好,那么再来类比一下:

wsl2里面的ubuntu虚拟机在windows下面也是一个vhdx虚拟磁盘文件,那么docker desktop配置里面的vhdx虚拟磁盘文件中就是容器了呗,wsl2与ubuntu,docker与容器,这个对应关系,wsl2管理ubuntu系统,docker管理容器(类似于系统)。

WSL2 和 Ubuntu 的关系

  • WSL2 是 Windows 的 Linux 子系统(基于轻量级虚拟机),用于在 Windows 上运行原生 Linux 环境。

  • Ubuntu(WSL2 发行版) 是一个完整的 Linux 系统,运行在 WSL2 的虚拟机中。

  • 对应文件
    Ubuntu 的根文件系统存储在 ext4.vhdx 文件中(路径如 C:\Users\<User>\AppData\Local\Packages\<Ubuntu-Package>\LocalState\ext4.vhdx)。
    这是一个完整的 Linux 系统磁盘镜像。

Docker和 容器的关系

Docker 的镜像、容器、卷等数据存储在另一个独立的 ext4.vhdx 文件中(路径如 C:\Users\<User>\AppData\Local\Docker\wsl\data\ext4.vhdx)。
这是一个专为 Docker 设计的虚拟磁盘,仅存储 Docker 相关的数据,不包含完整的操作系统。

对应关系如下列表:

组件角色虚拟磁盘文件(vhdx)管理对象
WSL2虚拟机平台无单独文件,但管理所有 WSL2 发行版的磁盘管理 Ubuntu 等发行版
Ubuntu完整的 Linux 系统ext4.vhdx(Ubuntu 的系统盘)运行 Linux 应用
Docker容器引擎docker_data.vhdx(Docker 数据盘)管理容器、镜像、卷等

关键区别

  • Ubuntu 的 vhdx
    是一个完整的 Linux 系统文件(包含 /bin/etc/home 等),你可以通过 wsl -d Ubuntu 进入这个系统。

  • Docker 的 vhdx
    仅存储 Docker 相关的数据(镜像、容器等),不包含完整的 OS。你不能直接“进入”这个磁盘,而是通过 Docker 命令(如 docker exec)操作容器。

  • WSL2 的作用

    为 Ubuntu 等发行版提供虚拟机环境。

    为 Docker Desktop 提供 Linux 内核支持(Docker 依赖 Linux 内核的命名空间、cgroups 等特性)。

总结

  • WSL2 ≈ 虚拟机管理器,负责运行 Ubuntu 和 Docker 的 Linux 环境。

  • Ubuntu ≈ 完整的 Linux 系统,有自己的 vhdx 文件。

  • Docker ≈ 容器管理器,用另一个 vhdx 文件存储容器数据,依赖 WSL2 的 Linux 内核。

到此这篇关于Docker Desktop磁盘镜像位置用途的文章就介绍到这了,更多相关Docker Desktop磁盘镜像位置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Dockerfile制作官方Tomcat镜像及镜像使用详解

    Dockerfile制作官方Tomcat镜像及镜像使用详解

    本篇文章主要介绍了Dockerfile构建官方Tomcat镜像及镜像使用详解,具有一定的参考价值,有兴趣的可以了解一下
    2017-07-07
  • docker-compose部署zabbix+grafana的实现

    docker-compose部署zabbix+grafana的实现

    这篇文章主要介绍了docker-compose部署zabbix+grafana的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • 解决docker安装jenkins容器内无法访问外网

    解决docker安装jenkins容器内无法访问外网

    这篇文章为大家主要介绍了docker安装jenkins容器内无法访问外网的问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Docker数据存储总结

    Docker数据存储总结

    今天小编就为大家分享一篇关于Docker数据存储总结,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Windows下Docker安装各种软件的详细过程

    Windows下Docker安装各种软件的详细过程

    这篇文章主要介绍了Windows下Docker安装各种软件的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • Docker 部署 Minio 对象存储服务器的过程详解

    Docker 部署 Minio 对象存储服务器的过程详解

    Minio是一个轻量级的应用程序,可以在各种环境中运行,包括公共云、私有云和混合云,这篇文章主要介绍了Docker 部署 Minio 对象存储服务器的过程详解,需要的朋友可以参考下
    2024-07-07
  • Docker部署Nginx反向代理的坑与解决方案实战记录

    Docker部署Nginx反向代理的坑与解决方案实战记录

    这篇文章主要介绍了Docker部署Nginx反向代理的坑与解决方案的相关资料,通过本文的介绍,你可以掌握如何在Docker中部署Nginx作为反向代理,并解决了常见的报错问题,需要的朋友可以参考下
    2025-03-03
  • Docker部署Kafka以及Spring Kafka实现

    Docker部署Kafka以及Spring Kafka实现

    这篇文章主要介绍了Docker部署Kafka以及Spring Kafka实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Docker Nginx容器制作部署实现方法

    Docker Nginx容器制作部署实现方法

    这篇文章主要介绍了Docker Nginx容器制作部署实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • docker 部署 Elasticsearch kibana及ik分词器详解

    docker 部署 Elasticsearch kibana及ik分词器详解

    这篇文章主要介绍了docker 部署 Elasticsearch kibana及ik分词器详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05

最新评论