Windows Server 2022 安装配置——安装 Docker

前言

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 系统默认是禁用该功能的,开启方式如下:

  1. 打开【服务器管理器】,在【仪表板】选择【添加角色和功能】
  2. 下一步跳到【服务器角色】勾选上【Hyper-V】
  3. 在【功能】中勾选【容器】
  4. 在【确认】中点击【安装】,安装完成后重启系统

也可以通过命令开启,需要在管理员权限下运行。

安装 Hyper-V 命令

复制代码
Install-WindowsFeature -Name Hyper-V

安装容器功能命令

复制代码
Install-WindowsFeature -Name containers

重启命令

复制代码
Restart-computer

安装 Docker

安装 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 安装 Docker

既然已经安装的 WSL,那就可以在 linux 子系统中直接安装 docker 使用。

  1. 安装 WSL

该指令只支持 windows server 2022 版本,2019 及以下是不支持的,但可采用手动安装方式安装。

powershell 复制代码
wsl --install

若是指令只出现 howto 帮助信息,也采用手动安装方式吧。

具体可以参考上一篇文章Windows Server 2022 安装 WSL 子系统

  1. 更新 apt 索引
bash 复制代码
sudo apt-get update
  1. 安装必须的功能
bash 复制代码
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
  1. 添加 Docker 的官方 GPG 密钥
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
  1. 设置存储库
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
  1. 更新 apt 索引,并安装 docker
bash 复制代码
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  1. 启动 docker,并测试 docker 版本

出现 docker 版本信息表示已经安装成功啦

bash 复制代码
sudo service docker start
sudo docker version

此时就可以在windows server 2022上同时运行linux内核或windows内核的容器了。

博主最终效果如下图:

参考文章

Windows 容器文档

相关推荐
zhangx1234_27 分钟前
javaEE 多线程1
java·linux·服务器
正在走向自律12 小时前
AI数据分析与可视化:从基础到应用实践
服务器·人工智能·python·机器学习·数据分析·pandas
OnlineProxy12 小时前
亚马逊多账号运营:如何在规避“关联封号”风险的同时实现电商规模化扩张
服务器·数据库·redis
91刘仁德13 小时前
IP协议详解:从IP协议头到网段划分、路由与NAT
linux·服务器·网络·网络协议·tcp/ip
辻弋20113 小时前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑
工作10年+,存储芯片行业16 小时前
Linux NVMe 中断排查与性能优化:CPU 亲和性
linux·运维·服务器·windows·性能优化·ssd·pcie
一号弯17 小时前
装完LINUX,请先新建日常用户
linux·运维·服务器
许彰午18 小时前
03-Linux环境准备依赖包内核参数与用户组
linux·运维·服务器·数据库
一号弯19 小时前
Hyperv的LINUX虚拟机扩容
linux·运维·服务器
一技安身20 小时前
VMware Workstation 25H2 创建兼容ESXi8.0虚拟机教程
服务器