入门:运行你的第一个 Windows 容器

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

本主题介绍在按入门:准备适用于容器的 Windows中所述设置环境后,如何运行你的第一个 Windows 容器。 若要运行容器,请首先下载(在容器中,也称为拉取操作)基础映像,该映像为容器提供基本的操作系统服务层。 然后,创建并运行基于基础映像的容器映像。 有关详细信息,请继续阅读。

拉取容器基础映像

所有容器都从容器映像创建。 Microsoft 提供了多个可供选择的入门级映像(称为基础映像)(有关详细信息,请参阅容器基础映像)。 此过程会拉取(下载和安装)轻型 Nano Server 基础映像。

  1. 打开一个命令提示符窗口(例如内置命令提示符、PowerShell 或 Windows Terminal),然后运行以下命令,以便下载并安装基础映像:

    docker pull mcr.microsoft.com/windows/nanoserver:ltsc2022
    

    如果在试图拉取映像时 Docker 无法启动,则可能无法访问 Docker 守护程序。 要解决此问题,请尝试重启 Docker 服务。

    提示

    如果看到错误消息“no matching manifest for linux/amd64 in the manifest list entries”,请确保 Docker 未配置为运行 Linux 容器。 若要在 Docker 中切换到 Windows 容器,可右键单击 Docker 图标,选择“切换到 Windows 容器”。 若要使用命令行在容器之间切换,请运行 & $Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchDaemon

  2. 下载完映像成后,请在等待时阅读 EULA,并通过查询本地 docker 映像存储库来验证它是否存在于系统上。 运行命令 docker images 会返回已安装映像的列表。

    下面是一个展示 Nano Server 映像的输出示例。

    REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
    microsoft/nanoserver   latest              105d76d0f40e        4 days ago          652 MB
    

运行 Windows 容器

对于此简单示例,我们将创建并部署一个“Hello World”容器映像。 为了获得最佳体验,请在提升的命令提示符窗口中运行这些命令(但不要使用 Windows PowerShell ISE - 它不适用于与容器交互会话,因为容器看似已挂起)。

  1. 在命令提示符窗口中输入以下命令,从 nanoserver 映像启动包含交互式会话的容器:

    docker run -it mcr.microsoft.com/windows/nanoserver:ltsc2022 cmd.exe
    
  2. 启动容器后,命令提示符窗口会将上下文更改为容器。 在容器中,我们会创建一个简单的“Hello World”文本文件,然后通过输入以下命令退出容器:

    echo "Hello World!" > Hello.txt
    exit
    
  3. 通过运行 docker ps 命令获取刚从其退出的容器的容器 ID:

    docker ps -a
    
  4. 创建新的“HelloWorld”映像,其中包含已运行的第一个容器中的更改。 为此,请运行 docker commit 命令,将 <containerid> 替换为容器的 ID:

    docker commit <containerid> helloworld
    

    完成后,现在你就具有一个包含“hello world”脚本的自定义映像了。 执行 docker images 命令即可看到该映像。

    docker images
    

    下面是输出示例:

    REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
    helloworld                             latest              a1064f2ec798        10 seconds ago      258MB
    mcr.microsoft.com/windows/nanoserver   2022                2b9c381d0911        3 weeks ago         256MB
    
  5. 最后,使用 docker run 命令运行新的容器,其中的 --rm 参数会在命令行 (cmd.exe) 停止后自动删除容器。

    docker run --rm helloworld cmd.exe /s /c type Hello.txt
    

    结果就是,Docker 从“HelloWorld”映像创建了一个容器,并且 Docker 在该容器中启动了 cmd.exe 的实例,然后 cmd.exe 读取文件并将内容输出到 shell。 作为最后一步,Docker 停止了容器并将其删除。

使用 Windows Admin Center 运行 Windows 容器

可使用 Windows Admin Center 在本地运行容器。 具体来说,你使用 Windows Admin Center 实例的容器扩展来运行容器。 首先,打开你想要管理的容器主机,然后在“工具”窗格中,选择“容器”扩展。 接着,在“容器主机”下的容器扩展中选择“映像”选项卡 。

容器扩展中的“映像”选项卡

如果主机没有基本容器映像,请选择“拉取”选项,打开“拉取容器映像”设置 :

“拉取容器映像”设置窗口

在“拉取容器映像”设置中,提供映像 URL 和标记。 如果你不确定要拉取哪个映像,Windows Admin Center 会提供一个来自 Microsoft 的常用映像列表。 你也可提供凭据,从专用存储库中拉取映像。 填写所需信息后,单击“拉取”。 Windows Admin Center 将在容器主机上启动拉取进程。 完成下载后,应会在“映像”选项卡上看到新映像。

选择要运行的映像,然后单击“运行”。

“运行映像”设置窗口

在“运行”菜单上,为容器设置配置,例如容器名称、隔离类型、要发布的端口,以及内存和 CPU 分配。 此外,还可追加 UI 中没有的 Docker run 命令,例如针对持久卷的 -v。 若要详细了解可用的 Docker run 参数,请参阅此文档

完成容器的配置后,单击“运行”。 可在“容器”选项卡上查看正在运行的容器的状态:

显示正在运行的容器的“容器”选项卡

后续步骤