通過在WSL 2上運(yùn)行的Docker Desktop, 用戶可以利用Linux工作區(qū),而不必同時維護(hù)Linux和Windows構(gòu)建腳本。有什么不同?在docker上運(yùn)行的應(yīng)用程序僅限于主機(jī)操作系統(tǒng)本身支持的應(yīng)用程序。換句話說,適用于Windows的Docker只能在Docker容器內(nèi)托管Windows應(yīng)用程序,而Linux上的Docker僅支持Linux應(yīng)用程序。那么如何在Windows上本地運(yùn)行Docker Linux?先來了解一下Windows上的Docker:挑戰(zhàn)。
Windows上的Docker:挑戰(zhàn)
Windows上的Docker一直是一個挑戰(zhàn),早在2017年我第一次使用Docker時,它就有以下限制,
它嚴(yán)格要求支持Windows版本,Windows平臺上沒有幾個容器。對諸如Kubernates和Mesos的編排系統(tǒng)的支持還不完整。
其中大部分與Docker最初是為Linux編寫和構(gòu)建有關(guān)。
有一些變通辦法可以使其在WSL(Linux的Windows子系統(tǒng))上工作,但是它們很復(fù)雜且不完整。
Windows Linux子系統(tǒng)WSL2引入了重大的體系結(jié)構(gòu)更改,因?yàn)樗荕icrosoft構(gòu)建的 完整Linux內(nèi)核,允許Linux容器在沒有仿真的情況下本機(jī)運(yùn)行。
從WSL2開始,Docker可以在Windows中完整運(yùn)行,您可以使用為Linux構(gòu)建的映像。
以下教程將幫助您在Windows的WSL上安裝Docker。
先決條件
在安裝Docker Desktop WSL 2后端之前,必須完成以下步驟:
安裝Windows 10版本2004或更高版本內(nèi)部版本19041或更高版本。
在Windows上啟用WSL 2功能。
以管理員身份打開PowerShell并運(yùn)行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
啟用“虛擬機(jī)平臺”可選組件
以管理員身份打開PowerShell并運(yùn)行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
此時重新啟動計(jì)算機(jī),以完成WSL安裝并更新到WSL 2。
安裝將WSL版本更新為WSL 2所需的Linux內(nèi)核軟件包。
將WSL 2設(shè)置為默認(rèn)版本
以管理員身份打開PowerShell并運(yùn)行:
wsl --set-default-version 2
安裝您選擇的Linux發(fā)行版
打開Microsoft商店,然后選擇您喜歡的Linux發(fā)行版。
以下是一些受歡迎的:
· Ubuntu?SUSE
· Linux企業(yè)服務(wù)器
首次啟動新安裝的Linux發(fā)行版時,將打開一個控制臺窗口,并且將要求您等待一兩分鐘以將文件解壓縮并存儲在PC上。以后所有的發(fā)射都將花費(fèi)不到一秒鐘的時間。
然后,您需要為新的Linux發(fā)行版創(chuàng)建一個用戶帳戶和密碼。
檢查Linux發(fā)行版列表
wsl -l -v
設(shè)置發(fā)行版以使用WSL 2
wsl --set-version
安裝Docker桌面下載 Docker Desktop Stable 2.3.0.2或更高版本。
確保在安裝過程中選擇以下內(nèi)容。
運(yùn)行Docker Desktop。
現(xiàn)在已在WSL 2上安裝了docker。
通過在Ubuntu / Linux終端中運(yùn)行它來進(jìn)行驗(yàn)證。
在WSL2中配置Docker容器限制
WSL 2還允許我們在下面的配置中配置內(nèi)存和處理器,如果您想限制docker容器使用的資源,則可以控制它。
加 %UserProfile%.wslconfig 用于調(diào)整WSL2設(shè)置的文件。
[wsl2] kernel= # An absolute Windows path to a custom Linux kernel. memory= # How much memory to assign to the WSL2 VM. processors= # How many processors to assign to t
he WSL2 VM. swap= # How much swap space to add to the WSL2 VM. 0 for no swap file. swapFile= # An absolute Windows path to the swap vhd. localhostForwarding= # Boolean specifying if ports bound to wildcard or localhost in the WSL2 VM should be connectable from the host via localhost:port (default true).
運(yùn)行以下命令以構(gòu)建docker映像,請注意,我們正在您的Linux發(fā)行版的WSL終端中運(yùn)行它。
docker run -d -p 80:80 --name docker-tutorial docker101tutorial
就是這樣,我們已經(jīng)在WSL2上成功安裝并測試了Docker。
以上就是關(guān)于如何在Windows上本地運(yùn)行Docker Linux的全部內(nèi)容,想了解更多關(guān)于Linux的信息,請繼續(xù)關(guān)注中培偉業(yè)。