搭建一个Windows系统容器

admin 2023年12月2日13:28:44评论16 views字数 4331阅读14分26秒阅读模式

简介

Windows是大众普遍使用的操作系统,因为其操作简洁收到大家的支持

工作中总会需要用到该操作系统,可虚拟机却很笨重,怎么办?根据自己的需求做个Windows容器是不错的选择

容器基础映像

适用范围:Windows Server 2022、Windows Server 2019、Windows Server 2016

Windows 提供了四个容器基础映像,用户可以基于它们进行构建。每个基础映像都是 Windows 或 Windows Server 操作系统的一种不同类型,其磁盘占用量不同,并带有一组不同的 Windows API。

Windows Server 核心

支持传统的 .NET Framework 应用程序。

https://hub.docker.com/_/microsoft-windows-servercore

Nano Server

针对 .NET Core 应用程序构建。

https://hub.docker.com/_/microsoft-windows-nanoserver

Windows

提供完整的 Windows API 集。

https://hub.docker.com/_/microsoft-windows

Windows Server

提供完整的 Windows API 集。

https://hub.docker.com/_/microsoft-windows-server/

选择基础映像

如何选择用作构建基础的合适基础映像?对大多数用户而言,Windows Server CoreNanoserver 将是最适合使用的映像。下面简要介绍了每个基础映像:

  • Nano Server 是用于新应用程序开发的超轻型 Windows 产品/服务。

  • Server Core 中等大小,是“提升和迁移”Windows Server 应用的不错选项。

  • Windows 是最大的映像,并且对工作负载具有完整的 Windows API 支持。

  • Windows Server 比 Windows 映像略小,具有完整的 Windows API 支持,并允许你使用更多服务器功能。

指南

虽然你可以自由决定使用哪个映像,但也可以根据下面提供的一些指导原则来进行选择:

  • 你的应用程序是否需要完整的 .NET Framework? 如果此问题的答案为“是”,则应选择 Windows Server Core

  • 你是否基于 .NET Core 构建 Windows 应用? 如果此问题的答案为“是”,则应选择 Nanoserver

  • Windows Server Core 容器映像是否缺少你的应用所需的依赖项? 如果此问题的答案为“是”,则应尝试选择 Windows。此映像远远大于其他基础映像,但它携带了许多核心 Windows 库(例如 GDI 库)。

  • 你是 Windows 预览体验成员吗? 如果是,则应考虑使用映像的预览体验版。有关详细信息,请参阅下面的“适用于 Windows 预览体验版的基础映像”。

  • 容器工作负载是否需要 GPU 加速支持? 如果需要,则应考虑使用 Windows Server 映像,以便为 Windows 容器工作负载提供硬件加速。

许多 Windows 用户希望将依赖于 .NET 的应用程序容器化。除了此处所述的四个基础映像,Microsoft 还发布了多个 Windows 容器映像(例如 .NET Framework 映像和 ASP .NET 映像),这些映像预配置了常用的 Microsoft 框架。

Windows 与 Windows Server

Windows Server 映像 (3.1 GB) 的大小略小于 Windows 映像 (3.4 GB)。Windows Server 映像还继承了 Server Core 映像的所有性能和可靠性改进,支持 GPU,并且没有 IIS 连接限制。要使用最新的 Windows Server 映像,需要安装 Windows Server 2022。Windows Server 2022 不支持 Windows 映像。

Windows Server Core 与 Nanoserver

Windows Server CoreNanoserver 是要使用的最常见基础映像。这两种映像之间的主要区别是,Nanoserver 中的 API 图面要小得多。Nanoserver 映像中缺少 PowerShell、WMI 和 Windows 服务堆栈。

Nanoserver 用于提供恰好足够的 API 图面来运行依赖于 .NET Core 或其他新式开源框架的应用。API 图面较小的好处是,Nanoserver 映像的磁盘占用量远远小于其余的 Windows 基础映像。请记住,你始终可以在自己认为合适的条件下在 Nano Server 上添加层。

设置环境

安装容器运行时

Windows 10 和 11

可以使用以下步骤在 Windows 10 或 11 专业版和企业版上安装 Docker。

  1. 下载并安装 Docker Desktop,创建 Docker 帐户(如果还没有该帐户)。你可以为个人或小型企业用户创建免费的 Docker 帐户,但是,对于大型企业,则需要支付月费。如需更多详细信息,请参阅 Docker 文档

  2. 在安装过程中,将默认容器类型设置为 Windows 容器。若要在安装完成后进行切换,可以在 Windows 系统任务栏中使用 Docker 项(如下所示),也可以在 PowerShell 提示符下使用以下命令:

    控制台

    & $Env:ProgramFilesDockerDockerDockerCli.exe -SwitchDaemon .

    搭建一个Windows系统容器


Windows 管理中心

可使用 Windows Admin Center 将 Windows Server 计算机适当地设置为容器主机。若要开始,请确保 Windows Admin Center 实例上已安装最新的容器扩展。若要详细了解如何安装和配置扩展,请查看 Windows 管理中心文档。安装容器扩展后,定向到要配置的 Windows Server 计算机,然后选择容器选项:

搭建一个Windows系统容器

单击“安装”按钮。Windows Admin Center 将在后台开始 Windows Server 和 Docker 的配置。完成此过程后,你可刷新页面,查看容器扩展的其他功能。

搭建一个Windows系统容器


  • 成功切换到 Windows

docker version

得到下面提示表示切换成功:

PS C:Usersqingjiegong> docker version
Client:
Cloud integration: v1.0.35+desktop.5
Version:           24.0.6
API version:       1.43
Go version:       go1.20.7
Git commit:       ed223bc
Built:             Mon Sep 4 12:32:48 2023
OS/Arch:           windows/amd64
Context:           default

Server: Docker Desktop 4.25.1 (128006)
Engine:
Version:         24.0.6
API version:     1.43 (minimum version 1.24)
Go version:       go1.20.7
Git commit:       1a79695
Built:           Mon Sep 4 12:31:39 2023
OS/Arch:         windows/amd64
Experimental:     false

查看windows版本:

  1. 打开“运行”窗口,方法是同时按下"windows"键和"R"键

  2. 在“运行”窗口中输入"winver"并按下"确定"键

  3. 弹出的窗口将显示您的windows版本和版本号

搭建一个Windows系统容器

下载 Windows Server 2019 镜像

关于 Windows 的镜像,除了上面使用 docker search windows 搜索镜像以外,也可以在 docker hub 上查找 Windows 镜像,地址:https://hub.docker.com/search?q=windows&type=image

拉取镜像:

docker pull mcr.microsoft.com/windows/servercore:ltsc2019

搭建一个Windows系统容器

注意:由于加速器在 Windows 容器并不适用,所以下载速度较慢。

运行容器进入cmd.exe终端

docker run -it mcr.microsoft.com/windows/nanoserver:ltsc2019 cmd.exe

搭建一个Windows系统容器

增加D盘

因为启动后的容器是无法添加盘符的,所以需要使用dockerfile创建一个带有D盘的容器

FROM <Base image like microsoft/dotnet-framework>
VOLUME ["D:"]
FROM mcr.microsoft.com/windows/nanoserver:ltsc2022
VOLUME ["D:"]

windows系统版本的选择,要使用最新的 Windows Server 映像,需要安装 Windows Server 2022。Windows Server 2022 不支持 Windows 映像。

本人的主机系统是19版本,镜像采用2019

dockerfile:

FROM mcr.microsoft.com/windows/nanoserver:ltsc2019
LABEL maintainer="[email protected]"

#增加D盘根据自己情况而定
#VOLUME ["D:"]

python实例

dockerfile:

FROM mcr.microsoft.com/windows/servercore:ltsc2019

LABEL Description="Python" Vendor="Python Software Foundation" Version="3.10.0"

RUN powershell.exe -Command
  $ErrorActionPreference = 'Stop';
  [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;
  wget https://www.python.org/ftp/python/3.10.0/python-3.10.0.exe -OutFile c:python-3.10.0.exe ;
  Start-Process c:python-3.10.0.exe -ArgumentList '/quiet InstallAllUsers=1 PrependPath=1' -Wait ;
  Remove-Item c:python-3.10.0.exe -Force

RUN echo print("Hello World!") > c:hello.py

CMD ["py", "c:/hello.py"]
docker build -t python:latest .

搭建一个Windows系统容器


原文始发于微信公众号(qingjiegong):搭建一个Windows系统容器

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月2日13:28:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   搭建一个Windows系统容器https://cn-sec.com/archives/2261953.html

发表评论

匿名网友 填写信息