当在带有Hyper-V的Windows上运行Docker桌面时,我有一个名为DockerDesktopVM的虚拟机,我的Linux虚拟机在其中运行,它的容器在其中。
然而,当我运行Docker桌面与WSL引擎,我看到它创建2个WSL发行版。
1.坞站-桌面
1.坞站-桌面-数据
我可以像使用其他发行版一样使用docker-desktop发行版。
但试图对docker-desktop-data做同样的事情只会让我感到沮丧。
所以我的问题是什么是docker-desktop-data发行版,为什么它与docker-desktop发行版分开存在?很明显,这个名字暗示了数据,但是具体是什么数据,为什么我不能像其他发行版一样跳到这个发行版?
3条答案
按热度按时间mwg9r5ms1#
docker-desktop-data发行版被docker-desktop发行版用作容器映像等的后备存储。当docker在Hyper-V下运行时,通过在Hyper-V映像中安装VHD可以实现相同的结果,但这在WSL 2中是不可能的。
引用the docker blog introducing the new wsl2 backend:
这将为您创建2个WSL发行版:
从高层次的Angular 来看,引导发行版基本上取代了Hyper-V,而数据存储发行版取代了我们之前附加到VM的VHD。
bootstrapping发行版基于我们前面提到的两个iso文件创建了一个Linux命名空间,它有自己的根文件系统(不完全正确,但足够接近),并使用数据存储发行版作为容器映像等的后备存储,而不是VHD(WSL 2目前不允许我们附加额外的VHD,因此我们利用跨发行版挂载)。
为了防止你能够
wsl -d ubuntu-desktop-data
发行版有一个0字节的/init
。The blog post是一个伟大的介绍如何在wsl上的docker工作。
sqxo8psd2#
很明显,这个名字暗示了数据,但是具体是什么数据?为什么我不能像其他发行版一样跳到发行版中?
我不知道为什么这还没有被注意到,所以我猜这只是不知道这里可能
如果您进入文件浏览器,至少内置的资源管理器(但任何资源管理器都应该工作),您可以通过从同一台机器转到
\\wsl.localhost
或\\wsl$
来浏览所有正在运行的WSL 2文件系统。由于WSL 2的工作方式,VHD实际上并没有被挂载,它们基本上被创建为挂载在WSL Distro中的网络驱动器...或多或少。
docker-desktop-data是存储所有图像和内容的地方。
\\wsl$\docker-desktop-data\data\docker\volumes\
是所有卷存在的地方。你知道你需要一个代理才能在Portainer中浏览卷吗?你可以直接到这里,像浏览任何windows文件夹一样浏览它们。我相信图像在\\wsl$\docker-desktop-data\data\<<FOLDERS WITH containerd IN THE NAME>>\
文件夹中,因为大小似乎匹配。但遗憾的是,它并不是真的有用的浏览&应该小心对待。虽然公认的答案给出了“它是什么”和“为什么它单独存在”的答案,但“什么数据”和“为什么我不能进入它”的答案却缺失了。我个人认为卷浏览是你在那里做的最有用的事情,因为它比任何其他访问方法都方便得多,但整个文件结构都在那里,无论你想怎么使用它
sigwle7e3#
正如我所看到的'*'就在'docker-desktop'前面,表示它是它的头或主分支。所以'-d'命令将只在它上面运行。尝试将它切换到'docker-desktop-data',然后您可能能够运行特定的发行版。
台式对接器-数据: