前言
Docker是一種容器化平臺(tái),用于開(kāi)發(fā)、部署和運(yùn)行應(yīng)用程序。它采用容器技術(shù),允許你將應(yīng)用程序及其依賴項(xiàng)打包到一個(gè)可移植的容器中,這個(gè)容器可以在不同的環(huán)境中運(yùn)行,而不需要擔(dān)心依賴問(wèn)題或環(huán)境差異。
且windows server 2022 已經(jīng)支持 wsl2 了,可以將 wsl2 設(shè)為默認(rèn)版本。
安裝基礎(chǔ)
確認(rèn)系統(tǒng)要求:
確保安裝的 Windows Server 2022 系統(tǒng)滿足 Docker 的最低系統(tǒng)要求。博主安裝的 Windows Server 2022 版本為Windows Server 2022 Datacenter。
安裝 windows server 2022 系統(tǒng)后最好先將系統(tǒng)進(jìn)行更新。網(wǎng)卡驅(qū)動(dòng)安裝可以參考上一篇文章Windows server 2022安裝配置——網(wǎng)卡驅(qū)動(dòng)配置
開(kāi)啟 Hyper-V 服務(wù)
Windows server 系統(tǒng)默認(rèn)是禁用該功能的,開(kāi)啟方式如下:
- 打開(kāi)【服務(wù)器管理器】,在【儀表板】選擇【添加角色和功能】
- 下一步跳到【服務(wù)器角色】勾選上【Hyper-V】
- 在【功能】中勾選【容器】
- 在【確認(rèn)】中點(diǎn)擊【安裝】,安裝完成后重啟系統(tǒng)
也可以通過(guò)命令開(kāi)啟,需要在管理員權(quán)限下運(yùn)行。
安裝 Hyper-V 命令
Install-WindowsFeature -Name Hyper-V
安裝容器功能命令
Install-WindowsFeature -Name containers
重啟命令
Restart-computer
安裝 Docker
安裝 docker ce 版本
Invoke-WebRequest -UseBasicParsing "https://raw./microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1
.\install-docker-ce.ps1
查看 docker 安裝版本,出現(xiàn)版本信息表示已經(jīng)安裝成功
docker version
【可選】還可以安裝 docker-compose,極大可能因網(wǎng)絡(luò)問(wèn)題下載失敗,可以嘗試手動(dòng)下載
Invoke-WebRequest -UseBasicParsing "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-windows-x86_64.exe" -o $Env:ProgramFiles\docker\docker-compose.exe
docker-compose --version
重啟系統(tǒng)
Restart-Computer -Force # 手動(dòng)重啟也行
安裝可視化 UI
Windows server 的 docker 沒(méi)有可視化 UI,可安裝第三方的工具,比如 portainer:
docker run -d --name portainer --restart always -p 9000:9000 -v \\.\pipe\docker_engine:\\.\pipe\docker_engine portainer/portainer
切換內(nèi)核
通過(guò)指令安裝好 docker,此時(shí) docker 運(yùn)行在 windows 內(nèi)核下,可以運(yùn)行windows內(nèi)核的容器,但是是不能加載 Linux 內(nèi)核容器的,如果此時(shí)run一個(gè)linux內(nèi)核的容器會(huì)出現(xiàn)no matching manifest for windows/amd64錯(cuò)誤。
如果你需要運(yùn)行 Linux 內(nèi)核的容器即需要將 docker 的內(nèi)核切換成 linux。但這里極其不友好,由于 windows server 安裝的 docker 版本沒(méi)有 Desktop,官方文檔給的指導(dǎo)中又不存在 dockercli 指令,踩坑無(wú)數(shù),現(xiàn)記錄如下。
若是看官著急尋找方案,可直接跳至下文的解決方案繼續(xù)閱讀。
![[imgs/docker的wndows內(nèi)核.png]]
擦坑記錄——該操作方案可能過(guò)時(shí)
指令切換方案
官方文檔中提到使用$Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchDaemon .命令切換 docker 內(nèi)核,但并不存在該路徑和 DockerCli 文件,
Windows server 2019 之前的切換指令:
[Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", "1", "Machine")
Restart-Service Docker
指令切換回 windows 內(nèi)核:
[Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", $null, "Machine")
Restart-Service Docker
實(shí)際切換均無(wú)效
lcow 方案
Github 地址:github.com/linuxkit/lc…
但該方案已經(jīng)不再支持。

WSL 安裝 Docker
既然已經(jīng)安裝的 WSL,那就可以在 linux 子系統(tǒng)中直接安裝 docker 使用。
- 安裝 WSL
該指令只支持 windows server 2022 版本,2019 及以下是不支持的,但可采用手動(dòng)安裝方式安裝。
wsl --install
若是指令只出現(xiàn) howto 幫助信息,也采用手動(dòng)安裝方式吧。
具體可以參考上一篇文章Windows Server 2022 安裝 WSL 子系統(tǒng)
- 更新 apt 索引
sudo apt-get update
- 安裝必須的功能
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
- 添加 Docker 的官方 GPG 密鑰
# 創(chuàng)建存放文件夾
sudo mkdir -p /etc/apt/keyrings
# curl下載密鑰,并存放至剛創(chuàng)建的文件夾下
curl -fsSL https://download./linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- 設(shè)置存儲(chǔ)庫(kù)
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download./linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 更新 apt 索引,并安裝 docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
- 啟動(dòng) docker,并測(cè)試 docker 版本
出現(xiàn) docker 版本信息表示已經(jīng)安裝成功啦
sudo service docker start
sudo docker version
此時(shí)就可以在windows server 2022上同時(shí)運(yùn)行l(wèi)inux內(nèi)核或windows內(nèi)核的容器了。
博主最終效果如下圖:

參考文章
Windows 容器文檔
|