首页 » SEO优化 » wsl2php技巧_若何用WSL2提升Docker机能

wsl2php技巧_若何用WSL2提升Docker机能

访客 2024-12-09 0

扫一扫用手机浏览

文章目录 [+]

而且,该办理方案使开拓不受您所拥有的操作系统的约束。
简而言之,纵然您的容器是Linux映像,也可以利用Windows或Mac进行开拓。

无论如何,在某些设置中,性能可能会降落,从而影响生产率。

wsl2php技巧_若何用WSL2提升Docker机能

从最近的Docker更新开始,Docker工程师增加了利用WSL2技能提高性能的可能性,从而在包括Windows在内的所有平台上供应了相同的开拓履历。

wsl2php技巧_若何用WSL2提升Docker机能
(图片来自网络侵删)

本文先容了为什么我们在Windows上可能存在性能问题,以及如何精确安装WSL2以提高性能。

WSL2如何改变Docker

Docker如何事情

关于Docker的中央部分是它在Windows下的事情办法。
由于它共享操作系统,而不是硬件,过去Windows上没有任何基于Linux的容器, 但是每个人都要Windows上利用Linux容器,为理解决这个问题, Docker工程师奥妙地采取的利用虚拟机监控程序(常日是Microsoft HyperV)运行虚拟机,并将VM OS共享到Docker容器。
事情便是这样运作的,如下图。

这种架构的紧张问题是:

资源限定。
只管docker专为共享OS而设计,但管理程序仍在利用硬件,因此您须要为其分配资源。
这导致了与利用虚拟机时同样的性能问题。
磁盘开销。
容器映像位于VM内,它以卷的形式存储文件,但是您可能希望共享Windows环境中的文件夹,尤其是在开拓时。
这是图中的赤色箭头来回及其影响性能。

由于Windows上的Docker如果紧张用于开拓环境中运行Linux容器,那么性能并不主要。
实际上,大多数办理方案都须要很少的资源来一次处理一个要求。
但是,在某些情形下,这种性能很主要。

某些运用程序状态的可实行文件仅在个中编译和加载一次,因此磁盘延迟不会太多。
利用.net或Java开拓,只需按下实行按钮,等待一分钟,然后您的运用程序就可以进行测试了,所有已编译的源代码或多或少都在RAM中,而您不须要读取硬盘。

相反,对付PHP或Python运用程序,则有所不同。
由于它们没有任何运用程序状态,因此每个要求都是独立阐明的,因此您须要每次扫描并加载所需的所有文件。
这意味着要读取大量文件,因此您的等待韶光将乘以大量文件。

对付此系统,在Windows上利用卷映射非常昂贵,并且会降落性能。
您可以利用安装到Linux OS的卷,但是在这种情形下,您将无法从Windows UI进行编辑。

因此,在大多数情形下,我们接管了最慢的性能(在大多数情形下,对付开拓环境是可接管的),或者在其他情形下,我们被急迫换到Linux,这抵消了利用Docker具有多操作系统可用性的上风。

什么是WSL2

WSL(Linux的Windows子系统)是用于在Windows受骗地运行Linux二进制可实行文件的兼容性层。
从Windows 10开始它就可以利用,并且可以在Windows内部利用Linux而不该用虚拟机。
自2019年6月以来,Windows 10随附了WSL(WSL 2)的增强功能。
此更新通过一组优化的Hyper-V功能带来了许多性能改进。

简而言之,您现在在Windows机器中拥有Linux发行版比运行虚拟机更快。

好是Docker Desktop支持它,并且可以增强您的容器。

WSL2如何改变Docker

利用WLS2和Docker的结合,我们实际上跳过了一步。

Windows和Linux文件系统是相互共享的:您可以通过Windows访问共享驱动器\\WSL$ 来查看Linux,或者可以通过/mtn/ c来查看Windows。

docker容器利用Linux WSL,没有任何资源限定,并且具有更好的性能。

在这种情形下,有很多坏。
仍旧可以共享Windows文件夹,但性能比标准情形下差。
这不是Java或.net中的问题,也不是可容忍的问题,但是使PHP开拓不可行。

幸运的是,有一个办理方案将利用WSL2的好处与丰富的开拓履历结合在一起。
实际上,Visual Studio Code可以在WSL2子系统上远程事情,因此您可以实行以下操作:

将卷保留在WSL2内,作为常规卷安装,以便得到最佳的文件系统访问性能。

照常在Windows上事情,在Linux上编辑代码。

很明显,如果您在IDE中双击一个项目或将其保存时要花更多的钱访问文件,这是一个非常可接管的办理方案。
问题与大量文件负载有关。

Visual Studio做得更好。
它具有一个扩展,可以与它们的远程子系统进行远程交互,因此您可以将UI保留在Windows中,但可以从Linux内部的实例利用引擎。
因此,作为开拓职员的用户体验也很好。

好了,一旦我们理解了如何以及为什么可以提高Docker的性能,我们只须要遵照一些大略的步骤即可完成事情。

我们将须要实行几个步骤,但是,从更高的角度来看,我们必须:

启用WSL2环境配置IDE并开始编码。
启用WSL2环境

本节解释如何安装WSL2版本,以准备开始利用Docker和WSL2进行编码。

启用WSL

第一步启用了Window子系统。
您必须在具有管理权限的命令行上运行它。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

启用WSL虚拟机

第二个命令激活虚拟机平台(是的,WSL仍旧在后台利用hyper-v)。
如果您的PC尚未打开虚拟化功能,则可能须要通过BIOS进行设置。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart安装WSL2更新

安装和配置WSL2的末了一步是安装更新。
这是一个大略的MSI软件包,因此您可以下载并双击安装。

https://docs.microsoft.com/it-it/windows/wsl/install-win10

将WSL2设置为默认值

将版本2设置为所有子系统的默认设置。

wsl --set-default-version 2从Microsoft市场安装ubuntu

要在子系统上运行Docker,我们须要下载Linux发行版。
由于Microsoft +开源现已成为现实,因此可以直接从Microsoft商店购买。
我利用了Ubunto,它只有440MB,以是不用担心会占用磁盘空间。

完成此步骤后,您将看到所有安装为子系统的操作系统。

wsl --list --verbose

您该当在WSL 2上看到docker,docker-data,ubuntu。

激活Docker WSL2扩展

在Docker Desktop内部,只需检讨配置并启用WSL2功能。
可能须要重新启动docker或重新启动PC。

警告:从标准模式切换到WSL2时,您将须要重新下载所有映像(位于Hyper-v VM而不是WSL2内)。
此外,命名卷中的数据存储在VM中,因此您不会在新的WSL2打算机中找到它们。
因此,首先,从Docker容器提取并备份所有干系数据。
根据本地设置,您可能会丢失数据。

选中“利用基于WSL2的引擎”

然后,您解锁WSL集成面板,您可以在个中激活Ubuntu发行版。

安装VsCode扩展

末了一步是安装和下载Visual Studio插件。
常日,您可以通过单击网站上的安装或通过Visual Studio Code UI来实行此操作。

插件地址: https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl

WSL2利用

此时,所有步骤都完成了,您可以开始编码了。

对付开始编码,您有两个选择:从WSL或Windwsow开始。

就个人而言,我喜好第二个,由于它非常独立。

1.命令行:

1.打开WSL终端或在shell中输入命令“ WSL”。
由于Ubunto是首选的子系统,因此您将位于个中。

2.输入“code .”。
这将在Windows打算机上打开Visual Studio Code。
(如果不起浸染,须要先将vscode 安装目录下的bin文件夹加入linux系统变量)

2.UI

1.打开Visual Studio代码。

2.单击WSL框(左下角,底部工具栏中的绿色按钮)或F1 + Remore WLS +新窗口

3.新窗口与Linux OS连接

从那一刻起,您就可以利用Visual Studio Code来完成所需的统统。
实际上,您可以从文件树中打开一个终端。
终端将位于WSL机器内部,如果您运行docker-compose up,您将在主机docker系统上激活容器。
您还可以利用git工具来处理提交。

由于许多缘故原由,许多开拓职员正在利用Windows作为开拓环境。
与Linux比较,这是得到最佳程序兼容性或更好的用户体验的常见选择。
其他人正在利用Windows来得到比Mackbook便宜的条记本电脑。

Docker在所有OS系统上都具有相同的开拓履历,但在某些情形下可能会导致Windows上的性能问题。

WSL2可以提高性能,但是须要把稳将文件放置在何处以及如何创建卷。

完成这些步骤后,您便可以享受与Linux相同的性能,并得到舒适的Windows用户体验。

标签:

相关文章