教你成功在Windows 10系統(tǒng)中運(yùn)行Docker
1.前言
以前我們介紹了Docker的一些基本概念和常用命令,但因?yàn)镈ocker是在Linux系統(tǒng)下創(chuàng)建的資源分離機(jī)制,所以它無法在Windows系統(tǒng)下直接運(yùn)行。這次我們將用3分鐘的時(shí)間介紹一下如何在Win10系統(tǒng)下運(yùn)行Docker。
2.下載Docker
用戶可以根據(jù)自己的系統(tǒng)在Docker官網(wǎng)選擇Mac[1]或Windows[2],因?yàn)镈ocker可以在Mac系統(tǒng)中安裝后可以直接運(yùn)行,這里就不再贅述。
安裝完Docker,并注冊(cè)個(gè)人賬號(hào),再雙擊啟動(dòng)它,你會(huì)發(fā)現(xiàn)并不像你想得那么順利。錯(cuò)誤信息如下圖所示:

Docker啟動(dòng)失敗
這是因?yàn)镈ocker無法在Windows系統(tǒng)中直接運(yùn)行,而需要?jiǎng)?chuàng)建一個(gè)Windows系統(tǒng)中的Linux虛擬機(jī)(VM)為Docker的正常運(yùn)行搭建好底層依賴。雖然官方文檔[3]提供了hyper-V和WSL2兩種解決方案,但是WSL2是基于hpyer-V在WSL1的升級(jí)版,其功能,安裝方式也簡(jiǎn)單方便,因此作者就選擇了WSL2的后端方式來運(yùn)行Docker。
3.安裝WSL2
WSL,Windows Subsystem for Linux,含義就是在Windows系統(tǒng)下Linux的子系統(tǒng)。只需要三步就可以在系統(tǒng)中為Docker安裝WSL2了,請(qǐng)注意目前WSL2支持在Windows10 2004以上的版本。
3.1 開啟WSL2功能
首先,打開Powershell命令提示符,運(yùn)行命令先查看網(wǎng)上所有的子系統(tǒng), 再選擇你想要選擇的系統(tǒng),這里我們將選擇Ubuntu來進(jìn)行安裝。
- ## 查看list
- wsl --list --online
- ## 安裝Linux distribution
- wsl --install -d Ubuntu

查看WSL列表
安裝成功后,結(jié)果返回會(huì)讓你創(chuàng)建UNIX的用戶名和密碼:

創(chuàng)建用戶名和密碼
細(xì)心的你會(huì)發(fā)現(xiàn)命令提示符左上方的logo已經(jīng)變成了Ubuntu的了。
3.2 安裝更新包
安裝成功后,還需要下載Linux安裝更新包,具體操作需要參考Microsoft[4]官方文檔根據(jù)你自己系統(tǒng)的版本選擇合適的更新包。
3.3 設(shè)置默認(rèn)版本
打開命令提示符,設(shè)置WSL2為L(zhǎng)inux distribution的默認(rèn)版本:
- wsl --set-default-version 2
3.4 設(shè)置WSL配置文件
因?yàn)閃SL默認(rèn)配置會(huì)占用計(jì)算機(jī)高達(dá)80%的內(nèi)存空間,為了避免這種情況,最好可以設(shè)置一下配置文件。
按下Windows + R,搜索%UserProfile%打開user的資源管理文件路徑,創(chuàng)建并自定義.wslconfig文檔。用記事本打開并輸入相關(guān)參數(shù)進(jìn)行配置:
- [wsl2]
- # 設(shè)置內(nèi)存為2G,主要是服務(wù)docker
- memory=2GB
- # CPU 最大占用個(gè)數(shù)
- processors=2
- # 不設(shè)置WSL2虛擬機(jī)分配的交換空間
- swap=0
- # 允許將WSL2的端口轉(zhuǎn)發(fā)到主機(jī)
- localhostForwarding=true
4.檢查Docker設(shè)置
成功安裝好Linux distribution后,還需要在docker desktop中設(shè)置一下關(guān)于WSL2的基本參數(shù)才能確保Docker的成功運(yùn)行。
首先,需要在通用設(shè)置下,勾選使用WSL2基礎(chǔ)的引擎,如圖所示:

基于WSL2引擎
其次,需要在資源中設(shè)置WSL整合,此操作是幫助你在擁有多個(gè)WSL時(shí)可以整合組成部分的。

設(shè)置WSL整合資源
最后,重啟docker desktop,你會(huì)看到成功啟動(dòng)的界面。

成功界面
5.總結(jié)
有些軟件在系統(tǒng)中為了成功地運(yùn)行,確實(shí)需要一些先決條件。不管是參考具體的官方文檔還是搜索一些避雷的經(jīng)驗(yàn)貼,安裝成功并使用后,你會(huì)發(fā)現(xiàn)這些環(huán)境的搭建是一勞永逸的,快嘗試在你的Windows系統(tǒng)中運(yùn)行Docker吧!之后我們還會(huì)持續(xù)分享Docker的學(xué)習(xí)經(jīng)驗(yàn),敬請(qǐng)期待。