赞
踩
Docker是一种容器化平台,用于开发、部署和运行应用程序。它采用容器技术,允许你将应用程序及其依赖项打包到一个可移植的容器中,这个容器可以在不同的环境中运行,而不需要担心依赖问题或环境差异。
且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 命令
复制代码
Install-WindowsFeature -Name Hyper-V
安装容器功能命令
复制代码
Install-WindowsFeature -Name containers
重启命令
复制代码
Restart-computer
安装 docker ce 版本
PowerShell
复制代码
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1
.\install-docker-ce.ps1
查看 docker 安装版本,出现版本信息表示已经安装成功
bash
复制代码
docker version
【可选】还可以安装 docker-compose,极大可能因网络问题下载失败,可以尝试手动下载
PowerShell
复制代码
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
重启系统
bash
复制代码
Restart-Computer -Force # 手动重启也行
安装可视化 UI
Windows server 的 docker 没有可视化 UI,可安装第三方的工具,比如 portainer:
bash
复制代码
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 指令,踩坑无数,现记录如下。
若是看官着急寻找方案,可直接跳至下文的解决方案继续阅读。
![[imgs/docker的wndows内核.png]]
指令切换方案
官方文档中提到使用$Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchDaemon .
命令切换 docker 内核,但并不存在该路径和 DockerCli 文件,
Windows server 2019 之前的切换指令:
css
复制代码
[Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", "1", "Machine")
Restart-Service Docker
指令切换回 windows 内核:
csharp
复制代码
[Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", $null, "Machine")
Restart-Service Docker
实际切换均无效
lcow 方案
Github 地址:github.com/linuxkit/lc…
但该方案已经不再支持。
既然已经安装的 WSL,那就可以在 linux 子系统中直接安装 docker 使用。
该指令只支持 windows server 2022 版本,2019 及以下是不支持的,但可采用手动安装方式安装。
powershell
复制代码
wsl --install
若是指令只出现 howto 帮助信息,也采用手动安装方式吧。
具体可以参考上一篇文章Windows Server 2022 安装 WSL 子系统
bash
复制代码
sudo apt-get update
bash
复制代码
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
bash
复制代码
# 创建存放文件夹
sudo mkdir -p /etc/apt/keyrings
# curl下载密钥,并存放至刚创建的文件夹下
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
bash
复制代码
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
bash
复制代码
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
出现 docker 版本信息表示已经安装成功啦
bash
复制代码
sudo service docker start
sudo docker version
此时就可以在windows server 2022上同时运行linux内核或windows内核的容器了。
博主最终效果如下图:
这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。