实验室 14:实施容器化解决方案

Microsoft Azure 用户接口

鉴于 Microsoft 云工具的动态特性,Azure UI 在此培训内容开发后可能会发生更改。 因此,实验说明和实验步骤可能无法正确对应。

我们发现社区进行了必要更改时,Microsoft 会更新此培训课程。 但是,云更新经常发生,因此在此培训内容更新之前,可能会发生 UI 更改。 如果发生这种情况,请适应这些更改,并根据需要在实验室中熟悉这些更改。

Instructions

开始之前

登录到实验室环境

使用以下凭据登录到 Windows 11 虚拟机 (VM):

  • 用户名:Admin
  • 密码:Pa55w.rd

注意:你的讲师将提供连接到虚拟实验室环境的说明。

查看已安装的应用程序

在 Windows 11 桌面上找到任务栏。 任务栏包含了你在本实验室中会使用的应用程序图标:

  • Microsoft Edge

实验室场景

在本实验室中,你将了解如何使用 .NET 应用程序和 Docker 文件创建容器并将其部署到容器注册表。

体系结构关系图

描述用户使用 Azure 内容分发网络增强 Web 应用程序的体系结构图

练习 1:在 Azure 中创建并运行容器

任务 1:创建容器注册表

  1. 在任务栏上,选择 Microsoft Edge 图标。

  2. 在浏览器窗口中,浏览到 Azure 门户 (https://portal.azure.com),然后使用你将用于此实验室的帐户登录。

  3. 在页面的左上角,选择“+ 创建资源”**

  4. 在搜索栏中,键入“容器注册表”并从结果中选择“容器注册表”****。

  5. 选择创建

  6. 在“创建容器注册表”页面的“基本信息”选项卡中,填写以下信息(将其他项保留为默认值)****:

    设置 操作
    “订阅”文本框 保留默认值
    “资源组”部分 选择“新建”,输入 acr-sam-rg,然后选择“确定”****
    “注册表名称”部分** 输入 acrsam [yourname]**
    “位置”下拉列表 选择“美国东部”
    “定价计划”下拉列表** 选择“基本”
  7. 选择“查看 + 创建”以查看设置,然后选择“创建”****。

    备注:请等待部署完成。 这可能需要几分钟的时间。

  8. 在“概述”边栏选项卡上,选择“转到资源”按钮以导航到新创建的容器注册表帐户的边栏选项卡****。

  9. 在“容器注册表”边栏选项卡上的“设置”部分,选择“访问密钥” **   **。

  10. 在“访问密钥” 边栏选项卡上,启用“管理员用户” ****。

  11. 将“用户名”框的值复制到剪贴板 **

  12. 打开记事本,然后将复制的值粘贴到记事本。 你稍后将在本实验室中使用此值。

祝贺你! 你已成功在 Azure 中创建容器注册表。

任务 2:创建 Docker 文件以生成容器映像

  1. 打开“文件资源管理器”窗口,浏览到 Allfiles (F):\Allfiles\Labs\14\Starter\webapp-lab14,然后打开文本编辑器****。

  2. 在项目目录中,创建一个新文件并将其命名为 Dockerfile

  3. 在 Dockerfile 中添加以下代码**

    
     FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
     WORKDIR /app
     EXPOSE 5151
    
     ENV ASPNETCORE_URLS=http://+:5151
    
     # Creates a non-root user with an explicit UID and adds permission to access the /app folder
     # For more info, please refer to https://aka.ms/vscode-docker-dotnet-configure-containers
     RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
     USER appuser
    
     FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
     ARG configuration=Release
     WORKDIR /src
     COPY ["<web-app-name>.csproj", "./"]
     RUN dotnet restore "<web-app-name>.csproj"
     COPY . .
     WORKDIR "/src/."
     RUN dotnet build "<web-app-name>.csproj" -c $configuration -o /app/build
    
     FROM build AS publish
     ARG configuration=Release
     RUN dotnet publish "<web-app-name>.csproj" -c $configuration -o /app/publish /p:UseAppHost=false
    
     FROM base AS final
     WORKDIR /app
     COPY --from=publish /app/publish .
     ENTRYPOINT ["dotnet", "<web-app-name>.dll"]
    
    
  4. 请确保将 <web-app-name> 替换为 .NET 8 Web 应用程序项目的名称。

  5. 保存 Dockerfile**

祝贺你! 你已成功创建 Docker 文件。

任务 3:使用 Docker 文件在 Azure 上创建 Linux 容器

确保已在本地计算机上安装 Docker CLI。 如果尚未安装,请从 Docker 网站安装它。

  1. 在任务栏上,选择“终端”图标**

  2. 在打开的命令提示符处,输入以下命令并按 Enter 键以登录 Azure 命令行接口 (CLI):

     az login
    
  3. 在 Microsoft Edge 浏览器窗口中,输入 Microsoft 帐户的电子邮件地址和密码,然后选择“登录” 。

  4. 返回当前打开的终端“命令提示符”窗口**。 请等待登录过程完成。

  5. 输入以下命令,然后按 Enter,将当前目录更改为包含实验室文件的 Allfiles (F):\Allfiles\Labs\14\Starter\webapp-lab14 目录**

     cd 'F:\Allfiles\Labs\14\Starter\webapp-lab14\'
    
  6. 运行以下命令,将源代码上传到容器注册表,并将容器映像构建为容器注册表任务,将 替换为容器注册表的名称,并将 替换为映像的新名称:

     az acr build --registry <your-registry-name> --image <image-name>:latest .
    

    注意:等待生成任务完成后再继续本实验室。

  7. 关闭“终端”窗格**

  8. 打开 Azure 门户并导航到容器注册表。

  9. 在“容器注册表” 边栏选项卡上的“设置” 部分,选择“存储库” ** **

  10. 验证 Docker 映像是否已在存储库中列出。

祝贺你! 你已成功使用 Docker 文件在 Azure 上创建了 Linux 容器。

任务 4:将 Linux 容器映像部署到 Azure 容器实例

  1. 在 Azure 门户中,选择页面左上角的“+ 创建资源”**

  2. 在搜索栏中,键入“容器实例”并从结果中选择“容器实例”****。

  3. 选择创建

  4. 在“创建容器实例”页面的“基本信息”选项卡中,填写以下信息(将其他项保留为默认值),然后选择“下一页:****网络

    设置 操作
    “订阅”文本框 保留默认值
    “资源组”下拉列表 在列表中选择 acr-sam-rg**
    “容器名称”部分** 输入 acisam [yourname]**
    “区域”下拉列表 选择“美国东部”
    “可用性区域”下拉列表** 选择“1”
    “映像源”部分 选择“Azure 容器注册表”
    “注册表”下拉列表 选择 acrsam [yourname]**
    “映像”** 下拉列表 选择 docker-image-name**
    “映像标记”** 下拉列表 选择 docker-image-tag**
    “OS 类型”部分 选择“Linux”
  5. 在“网络”选项卡中,填写以下信息**

    设置 操作
    “DNS 名称标签”文本框** 输入 dns-name**
    “端口”文本框** 输入 DockerFile 中的 port-number**
    “端口协议”下拉列表** 在列表中选择 TCP**
  6. 选择“查看 + 创建”以查看设置,然后选择“创建”****。

    备注:请等待部署完成。 这可能需要几分钟的时间。

  7. 在“概述”边栏选项卡上,选择“转到资源”按钮以导航到新创建的容器实例帐户的边栏选项卡****。

  8. 复制容器的公共 IP 地址,并将其与端口号一起粘贴到 Web 浏览器中,然后按 Enter。

    <public-IP-number>:<port-number><DNS-name>:<port-number>

  9. 应会看到 .NET Web 应用程序的网页。

祝贺你! 你已成功将 Linux 容器部署到容器实例。

任务 5:查询现有容器的容器注册表

  1. 打开 Azure 门户并导航到之前已创建的资源组。

  2. 选择在任务 4 中创建的容器注册表。

  3. 选择“存储库”选项卡,然后选择要查询现有容器的存储库**

  4. 在“标记”部分,可以查看所选存储库的标记列表**

  5. 选择标记以查看容器映像的详细信息。 这将显示容器映像的元数据,包括大小、创建日期和任何关联的层。

  6. 还可使用页面顶部的搜索栏搜索特定容器映像。 只需输入关键字或标记名称,然后选择“搜索”按钮**

  7. 如果要删除容器映像,请选择标记,然后选择“删除”按钮**

    注意:这将永久删除容器映像,并且无法恢复。

就这么简单! 你已成功了解如何查询现有容器的容器注册表。

审阅

完成本练习后,你获得了创建容器注册表、创建 Dockerfile、生成容器映像、将 Linux 容器部署到 Azure 容器实例的实践经验。

练习 2:创建并运行 Azure 容器应用服务

在本练习中,你将了解如何使用在练习一中创建的容器映像创建容器应用。

任务 1:在 Azure 中创建容器应用

  1. 在 Azure 门户中,选择页面左上角的“+ 创建资源”**

  2. 在搜索栏中,键入“容器应用”并从结果中选择“容器应用”****。

  3. 选择创建

  4. 在“创建容器应用”页面的“基本信息”选项卡中,填写以下信息(将其他项保留为默认值),然后选择“下一页:**** 容器”:

    设置 操作
    “订阅”文本框 保留默认值
    “资源组”下拉列表 在列表中选择 acr-sam-rg**
    “容器应用名称”部分** 输入 acasam [yourname]**
    “区域”下拉列表 选择“美国东部”
    “容器应用环境”下拉列表** 保留默认值
  5. 在“容器”选项卡上,填写以下信息,然后选择“入口”选项卡:****

    设置 操作
    “使用快速入门映像”复选框** 取消选中
    “名称”文本框 输入 [你的姓名]-container-app
    “映像源”下拉列表** 选择“Azure 容器注册表”
    “注册表”下拉列表 选择 acrsam [yourname]**
    “映像”** 下拉列表 选择 ****
    “映像标记”** 下拉列表 选择“最新”
    “CPU 和内存”下拉列表** 在列表中选择“0.25 个 CPU 核心,0.5 Gi 内存”**
  6. 在“入口”选项卡中,填写以下信息**

    设置 操作
    “入口”复选框** 选择启用
    “入口流量”框** 选择“接受来自任何位置的流量”**
    “入口类型”框** 选择“HTTP
    “客户端证书模式”框** 选择“忽略”**
    “传输”下拉列表** 选择“自动”**
    “目标端口”文本框** 输入“5151”**
  7. 选择“查看 + 创建”以查看设置,然后选择“创建”****。

备注:请等待部署完成。 这可能需要几分钟的时间。

  1. 在“概述”边栏选项卡上,选择“转到资源”按钮以导航到新创建的容器应用帐户的边栏选项卡****。

  2. 在“容器应用”边栏选项卡上,选择“应用程序 URL”以查看 .NET Web 应用程序的网页****。

祝贺你! 你已成功将 Linux 容器部署到容器应用。

审阅

完成本练习后,你获得了创建容器应用、将 Linux 容器部署到 Azure 容器应用的实践经验。