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

WSL 安裝 Docker
既然已經安裝的 WSL,那就可以在 linux 子系統中直接安裝 docker 使用。
- 安裝 WSL
該指令只支持 windows server 2022 版本,2019 及以下是不支持的,但可采用手動安裝方式安裝。
wsl --install
若是指令只出現 howto 幫助信息,也采用手動安裝方式吧。
具體可以參考上一篇文章Windows Server 2022 安裝 WSL 子系統
- 更新 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
- 設置存儲庫
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
- 啟動 docker,并測試 docker 版本
出現 docker 版本信息表示已經安裝成功啦
sudo service docker start
sudo docker version
此時就可以在windows server 2022上同時運行l(wèi)inux內核或windows內核的容器了。
博主最終效果如下圖:

參考文章
Windows 容器文檔
|