docker-desktop for windows中docker镜像存储在哪里?

29
我从https://www.docker.com/products/docker-desktop安装了适用于Windows 10的Docker桌面版,并启用了Linux容器的Docker守护程序。 我有自己的wsl2发行版叫Ubuntu,我启用了与Ubuntu发行版的Docker桌面版集成,并在其中构建了一个映像。 但我找不到映像保存在哪里。 我进行了一些搜索,并发现有人说它在\\wsl$\docker-desktop-data\mnt\wsl\docker-desktop-data\data\docker中。我确实找到了这个文件夹,但整个文件夹只有几百MB,而我的映像则有几GB。我只找到元数据但没有实际映像。 有人指出,在Docker资源配置选项卡中可以找到映像路径,但我的没有显示Docker映像所在的位置... docker resources 有人在类似的情况下找到了映像吗? 更新 卷创建在文件夹中:\\wsl$\docker-desktop-data\mnt\wsl\docker-desktop-data\version-pack-data\community\docker\volumes

你的问题不太清楚:你是在Windows上运行Docker还是在Ubuntu虚拟机中运行Docker-ce(使用托管的hypervisor,如Virtual Box)?如果是在Windows上运行Docker for Windows(Docker Desktop),那么这个答案是否可以回答你的问题:https://dev59.com/xlgQ5IYBdhLWcg3wxGvs - jossefaz
您无法直接访问主机中图像的内容;它们存储的格式是不透明的,并且可能因安装而异。您在此目录中寻找什么? - David Maze
@yAzou 我更新了我的帖子。我按照你的链接操作,我的 docker info 显示根目录为 /var/lib/docker,但是并没有这个文件夹,只有一个空文件夹 /var/lib/docker-desktop。 @DavidMaze 如果我知道镜像存储的位置,我会感到更加安全。镜像大小也不容忽视。 - shelper
我已经看到了这个(它就是我现在得到的)。 - Indranil Gayen
这个回答解决了你的问题吗?在使用Docker桌面版运行WSL时,Docker卷位于何处? - j08691
显示剩余2条评论
3个回答

16

Docker虚拟机存储在文件%USERPROFILE%\AppData\Local\Docker\wsl\data\ext4.vhdx中。

这可能不是你正在寻找的内容,但在查找链接时,我找到了这个线程,因此这个答案可能会帮助其他人。

更多信息


如果你删除它会发生什么? - TamusJRoyce

12

使用WSL集成时,Docker会创建两个发行版:

  • docker-desktop
  • docker-desktop-data

您可以通过以下方式访问它们:

\\wsl$\docker-desktop
\\wsl$\docker-desktop-data

1
谢谢您的回复,更具体地说,它位于 \\wsl$\docker-desktop-data\mnt\wsl\docker-desktop-data\version-pack-data\community\docker\volumes - shelper
4
你知道这两个发行版有什么区别吗?我感到困惑。 - Nikki

10

像Max所说的那样,WSL2上的Docker创建了两个发行版docker-desktopdocker-desktop-data

经过一番搜索,我终于找到了层数据,它在这里:\\wsl$\docker-desktop-data\version-pack-data\community\docker\overlay2

您可以在那里访问层差异(不是整个映像,因为这不是docker存储它们的方式),但请注意,文件夹的命名不是按照图像ID或其Repo摘要命名的。要找到正确的文件夹,您需要运行docker image inspect image_id_here并查找GraphDriver.Data.UpperDir(或只需运行docker inspect image_id_here -f "{{.GraphDriver.Data.UpperDir}}"),其中将包含文件夹名称在/overlay2/之后。

注意:\\wsl$\docker-desktop-data\mnt\wsl\docker-desktop-data\是冗余的,该路径可以简化为\\wsl$\docker-desktop-data\(由于某种原因,一些发行版会自我挂载)。


为什么所有的资料都说数据应该保存在docker\volumes中,但我的docker\overlay2中却有东西?我是不是没有正确设置什么?我的docker\volumes是空的。 - Nikki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接