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…

但该方案已经不再支持。

image.png

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内核的容器了。

博主最终效果如下图:

image.png

这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!

CSDN大礼包:全网最全《全套Python学习资料》免费分享🎁

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

👉CSDN大礼包🎁:全网最全《Python学习资料》免费分享(安全链接,放心点击)👈

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

5️⃣Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
上述所有资料 ⚡️ ,朋友们如果有需要 📦《全套Python学习资料》的,可以扫描下方二维码免费领取 🆓
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

👉CSDN大礼包🎁:全网最全《Python学习资料》免费分享(安全链接,放心点击)👈

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐