win10使用WSL 2运行Docker Desktop,运行文件从C盘迁移到其他目录
<h1 id="前言">前言</h1><p>前几天重装系统,把系统升到了Windows 10 2004,然后在安装Docker Desktop(2.3.0.3版本)时发现跟以前不太一样了。现在Docker Desktop默认使用WSL 2来运行,而不是以前的Hyper-V。</p>
<h1 id="wsl">WSL</h1>
<p>WSL:适用于 Linux 的 Windows 子系统。</p>
<ul>
<li>什么是适用于 Linux 的 Windows 子系统?</li>
</ul>
<blockquote>
<p>适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生虚拟机开销。</p>
</blockquote>
<ul>
<li>什么是 WSL 2?</li>
</ul>
<blockquote>
<p>WSL 2 是适用于 Linux 的 Windows 子系统体系结构的一个新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。 它的主要目标是提高文件系统性能,以及添加完全的系统调用兼容性。</p>
</blockquote>
<p>安装完后试了一下,最明显的感觉就是开启docker的速度大大提升!!!<br>
<img src="https://img2020.cnblogs.com/blog/610959/202006/610959-20200623194114380-1616116229.png" alt="" loading="lazy"></p>
<p>但是以前设置镜像位置的功能不见了:<br>
<img src="https://img2020.cnblogs.com/blog/610959/202006/610959-20200623194352720-365413236.png" alt="" loading="lazy"><br>
看官网说明,原来,启用WSL后,docker运行数据都在WSL发行版中,文件位置都只能由WSL管理!</p>
<p>安装docker后,docker会自动创建2个发行版:</p>
<ul>
<li>docker-desktop</li>
<li>docker-desktop-data</li>
</ul>
<p><img src="https://img2020.cnblogs.com/blog/610959/202006/610959-20200623195500964-442325184.png" alt="" loading="lazy"></p>
<p>WSL发行版默认都是安装在C盘,在%LOCALAPPDATA%/Docker/wsl目录<br>
docker的运行数据、镜像文件都存在%LOCALAPPDATA%/Docker/wsl/data/ext4.vhdx中,这对C盘空间紧张的人非常不友好。。。</p>
<h1 id="wsl发行版迁移">WSL发行版迁移</h1>
<p>网上查了一下wsl发行版迁移,几乎都是说使用LxRunOffline.exe</p>
<p>经过我试验,LxRunOffline.exe确实可以迁移自己安装的发行版,却迁移不了docker自动创建的2个发行版!</p>
<p>最后只能去github提了个issues:https://github.com/docker/for-win/issues/7348</p>
<p>下面是操作方法:</p>
<ol>
<li>
<p>首先关闭docker</p>
</li>
<li>
<p>关闭所有发行版:<br>
<code>wsl --shutdown</code></p>
</li>
<li>
<p>将docker-desktop-data导出到D:\SoftwareData\wsl\docker-desktop-data\docker-desktop-data.tar(注意,原有的docker images不会一起导出)<br>
<code>wsl --export docker-desktop-data D:\SoftwareData\wsl\docker-desktop-data\docker-desktop-data.tar</code></p>
</li>
<li>
<p>注销docker-desktop-data:<br>
<code>wsl --unregister docker-desktop-data</code></p>
</li>
<li>
<p>重新导入docker-desktop-data到要存放的文件夹:D:\SoftwareData\wsl\docker-desktop-data\:<br>
<code>wsl --import docker-desktop-data D:\SoftwareData\wsl\docker-desktop-data\ D:\SoftwareData\wsl\docker-desktop-data\docker-desktop-data.tar --version 2</code></p>
</li>
</ol>
<p><img src="https://img2020.cnblogs.com/blog/610959/202006/610959-20200623202849041-113421930.png" alt="" loading="lazy"><br>
<img src="https://img2020.cnblogs.com/blog/610959/202006/610959-20200623202919822-213119905.png" alt="" loading="lazy"></p>
<p>只需要迁移docker-desktop-data一个发行版就行,另外一个不用管,它占用空间很小。</p>
<p>完成以上操作后,原来的%LOCALAPPDATA%/Docker/wsl/data/ext4.vhdx就迁移到新目录了:<br>
<img src="https://img2020.cnblogs.com/blog/610959/202006/610959-20200623204037008-1551744168.png" alt="" loading="lazy"><br>
重启docker,这下不用担心C盘爆满了!</p>
<p>参考:<br>
https://docs.microsoft.com/zh-cn/windows/wsl/<br>
https://docs.docker.com/docker-for-windows/wsl/</p>
</div>
<div id="MySignature" role="contentinfo">
<p style="font-size:12px;text-align:right;font-style: italic;padding: 10px;margin: 10px 0;border-top: 1px solid #ccc;">——本文使用【Typora】+【EasyBlogImageForTypora】编辑</p>
<div style="border: #c0c0c0 2px dashed;padding:20px;">
<p>欢迎关注我的公众号,一起学习。 </p>
<p>如果本文对您有所帮助,您可以点击右下方的【推荐】按钮支持一下;文中如有不妥之处,还望指正,非常感谢!!!</p>
<img src="https://images.cnblogs.com/cnblogs_com/xhznl/1786441/o_2006130816545ee48a5d08000_5ee48a5f18c90.png">
<hr style="margin: 10px 0;"/>
<p>作者:xhznl</p>
<p>出处:http://www.cnblogs.com/xhznl/</p>
<p>文章可以转载,但请注明出处 </p>
</div><br><br>
来源:https://www.cnblogs.com/xhznl/p/13184398.html
頁:
[1]