WSL2 子系统迁移(docker&ubuntu)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WSL2 子系统迁移(docker&ubuntu)相关的知识,希望对你有一定的参考价值。
参考技术A (1)查看wsl子系统发行版(2)关闭docker-desktop
(3)关闭所有wsl子系统发行版
(4)将子系统导出到自己想要的地方 E:\Development\Docker\docker-desktop-data.tar
(5)注销 docker-desktop-data 子系统发行版。
(6)重新导入docker-desktop-data(注意:要先写目录,然后再写文件名)
(7)迁移完成,重新打开docker
感觉步骤与上述差不多。尝试一下
(1)关闭所有的wsl子系统
(2)导出子系统到想要的地方
(3) 注销Ubuntu
(4)重新导入Ubuntu (注意要先写目录,再写目录下的文件)
(5)将Ubuntu设置为默认子系统
(6)成功将Ubuntu移到E盘,解放C盘
(7)有个问题,在没有迁移之前对wsl ubuntu设置的内容全部没了。 有什么办法将之前的设置给弄回来呢?网上查找一番,发现是用户的问题。wsl import之后的子系统,会默认 root 用户登录。但是我之前的用户是 win 。所以只要用户切换到win用户就可以了。
(8)还有一个小问题,如果重新打开wsl ubuntu,默认还是root用户。如何调整为默认普通用户呢?修改注册表
解放了C盘,将4G多的空间移到其他硬盘。
https://www.cnblogs.com/oboth-zl/p/12769220.html#_label0
在 Windows 中迁移到 WSL 2 后对 docker 容器的内存分配
【中文标题】在 Windows 中迁移到 WSL 2 后对 docker 容器的内存分配【英文标题】:Memory allocation to docker containers after moving to WSL 2 in Windows 【发布时间】:2020-10-05 21:36:49 【问题描述】:我最近更新了我的 Docker 环境以在 Windows 上的 WSL 2
上运行。
为了在以前的版本中设置容器的内存分配限制,我在 Docker 桌面 GUI 中的Settings->Resources->Advanced->Preferences
下可以选择调整内存和 CPU 分配。
在 WSL 2 集成之后,我无法找到该选项。
我认为从现在开始我应该通过我的 Linux 发行版运行所有东西,所以这是我能够找到的解决方案:
docker run -d -p 8081:80 --memory="256m" container_name
我不想每次运行容器时都设置一个标志。有没有办法永久设置内存分配?
【问题讨论】:
此命令是否适用于特定容器docker run -d -p 8081:80 --memory="256m" container_name
?
是的,@srk
【参考方案1】:
为 WSL2 集成删除了内存和 CPU 设置。但是,从 Windows Build 18945 开始,有一种解决方法可以限制 WSL2 内存使用量。
创建一个%UserProfile%\.wslconfig
文件以调整 WSL2 设置:
[wsl2]
memory=6GB # Any size you feel like
swap=0
localhostForwarding=true
在管理员 Powershell 中运行 Get-Service LxssManager | Restart-Service
(或重新启动),并验证任务管理器中的 vmmem
使用率是否下降。
【讨论】:
是的,我这样做了。事实上,我推动 Microsoft 文档团队改进有关.wslconfig
文件的文档。存在Vmmem
占用大量内存的问题,他们计划尽快解决。此解决方案仅解决分配给 Linux 子系统的内存。我一直在寻找对每个容器资源的更精细控制。不过感谢您的回答。我会再等几天以获得适当的答案。
绝对是@MurtazaHaji,这是正确的,这是整体 WSL 内存消耗。您是否尝试过应用此处显示的限制 (docs.docker.com/config/containers/resource_constraints)?我没有,但我会尝试回到你身边!
是的,内存标志在每个容器的基础上解决了这个问题,也许有一个用于分配内存的永久标志,但是找不到那个选项。
不需要重启,只需在你的 admin powershell 中运行“Get-Service LxssManager | Restart-Service”
“.wslconfig”文件不支持浮点数。如果你设置memory=2.5GB
,它只是忽略你的设置,没有任何警告。使用整数。以上是关于WSL2 子系统迁移(docker&ubuntu)的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 中迁移到 WSL 2 后对 docker 容器的内存分配