欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP項目在Docker(WSL2)中運行緩慢的解決方法

 更新時間:2023年09月05日 10:28:03   作者:自由de單車  
最近在使用Docker容器運行PHP項目的時候,發(fā)現(xiàn)特別緩慢,例如一個干凈的?ThinkPHP?5.1?框架,訪問首頁都需要1秒以上,如果再加上數(shù)據(jù)庫查詢、復雜的業(yè)務邏輯等代碼的話,那速度可想而知,所以本文就給大家介紹了解決方法,需要的朋友可以參考下

環(huán)境

Windows 11

Docker Desktop 4.17.1(開啟WSL2)

WSL2(Ubuntu-22.04)

前言

最近在使用Docker容器運行PHP項目的時候,發(fā)現(xiàn)特別緩慢。例如一個干凈的 ThinkPHP 5.1 框架,訪問首頁都需要1秒以上,如果再加上數(shù)據(jù)庫查詢、復雜的業(yè)務邏輯等代碼的話,那速度可想而知。

我的開發(fā)模式是,在Windows上使用 IDE 開發(fā),代碼也是存儲在Windows系統(tǒng)上,然后docker通過掛載的方式,將代碼目錄掛載到容器里去運行。

后面查資料得知,是因為Docker是跑在 WSL2 里的,雖說 WSL2 相比 WSL1 更先進,但在跨系統(tǒng)文件讀寫性能方面是比 WSL1 差的,因此,跑在 WSL2 里的docker想要跨系統(tǒng)訪問Windows系統(tǒng)上的代碼文件的話,性能是很差的。

解決方法

第一種方法

讓docker不要使用WSL2,改為使用WSL1。方法很簡單,在設置里面關(guān)閉 WSL2 就可以:

在這里插入圖片描述

但正如圖中描述所說,Windows Home版本只能使用 WSL2,不支持WSL1,我的正好是Home版本,因此這種方法行不通。

第二種方法

既然問題起因是跨系統(tǒng)文件讀寫性能差,那么我們不要跨系統(tǒng)讀寫不就可以了?

所以我不再把代碼存儲在Windows系統(tǒng)上,改為存儲在 WSL2 上。

1)首先要安裝一個WSL系統(tǒng),我選擇的是Ubuntu 22.04,在Microsoft Store中搜索Ubuntu安裝就可以:

在這里插入圖片描述

因為我已經(jīng)安裝好了,所以圖片中顯示的是“已擁有”。

2)在Docker Desktop中開啟WSL集成功能,并重啟Docker:

在這里插入圖片描述

開啟WSL集成功能后,我們就可以在Ubuntu里使用docker命令了。

3)進入Ubuntu shell命令行界面,如下圖所示,搜索ubuntu,點擊就可以:

在這里插入圖片描述

或者在Powershell中執(zhí)行 wsl -d Ubuntu-22.04 命令也可以。

4)進入ubuntu命令行界面后,發(fā)現(xiàn)執(zhí)行docker命令會報錯:

在這里插入圖片描述

這是因為當前用戶沒有足夠的權(quán)限,解決方法是,在前面加上sudo,即 sudo docker ps 就可以。

但我不想每次都加sudo,太麻煩了。還有另外一種方法,執(zhí)行 sudo usermod -aG docker ${USER} 命令將當前用戶加入到docker用戶組就可以不用加sudo了。

注意:加入到docker用戶組后,要關(guān)閉當前窗口,重新進入ubuntu命令行才會生效!

5)在ubuntu中選一個路徑作為你項目的存儲目錄,我選的是 /home/workspace 目錄,因為我的項目有上傳到git倉庫,因此我使用 git clone 命令將代碼下載到 /home/workspace 目錄即可。

6)在ubuntu中啟動docker容器,將代碼目錄掛載到docker容器里去,命令參考:

docker run -d -v /home/workspace:/var/www/html --name {CONTAINER_NAME} {IMAGE_NAME}

/home/workspace 是宿主機路徑, /var/www/html 是容器路徑, {CONTAINER_NAME} 是容器名字, {IMAGE_NAME} 是鏡像名字,需自行替換。

7)現(xiàn)在我的代碼都存儲在ubuntu里了,那在Windows上我還怎么用IDE進行開發(fā)?

不用急,在Windows上我們也是可以訪問ubuntu里的文件的。

例如下圖,在IDE里打開項目的時候,選擇 \\wsl$\Ubuntu-22.04\ ,這個文件夾里的就是ubuntu系統(tǒng)里的文件目錄,然后選擇你代碼所在的文件夾打開就可以了:

在這里插入圖片描述

8)將代碼改為存儲在ubuntu里后,再次運行項目,速度已經(jīng)恢復正常~

到此這篇關(guān)于PHP項目在Docker(WSL2)中運行緩慢的解決方法的文章就介紹到這了,更多相關(guān)PHP項目在Docker中運行緩慢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論