实验室 14:实施容器化解决方案
Microsoft Azure 用户接口
鉴于 Microsoft 云工具的动态特性,Azure UI 在此培训内容开发后可能会发生更改。 因此,实验说明和实验步骤可能无法正确对应。
我们发现社区进行了必要更改时,Microsoft 会更新此培训课程。 但是,云更新经常发生,因此在此培训内容更新之前,可能会发生 UI 更改。 如果发生这种情况,请适应这些更改,并根据需要在实验室中熟悉这些更改。
Instructions
开始之前
登录到实验室环境
使用以下凭据登录到 Windows 11 虚拟机 (VM):
- 用户名:
Admin
- 密码:
Pa55w.rd
注意:你的讲师将提供连接到虚拟实验室环境的说明。
查看已安装的应用程序
在 Windows 11 桌面上找到任务栏。 任务栏包含了你在本实验室中会使用的应用程序图标:
- Microsoft Edge
实验室场景
在本实验室中,你将了解如何使用 .NET 应用程序和 Docker 文件创建容器并将其部署到容器注册表。
体系结构关系图
练习 1:在 Azure 中创建并运行容器
任务 1:创建容器注册表
-
在任务栏上,选择 Microsoft Edge 图标。
-
在浏览器窗口中,浏览到 Azure 门户 (
https://portal.azure.com
),然后使用你将用于此实验室的帐户登录。 -
在页面的左上角,选择“+ 创建资源”**。
-
在搜索栏中,键入“容器注册表”并从结果中选择“容器注册表”****。
-
选择创建。
-
在“创建容器注册表”页面的“基本信息”选项卡中,填写以下信息(将其他项保留为默认值)****:
设置 操作 “订阅”文本框 保留默认值 “资源组”部分 选择“新建”,输入 acr-sam-rg,然后选择“确定”**** “注册表名称”部分** 输入 acrsam [yourname]** “位置”下拉列表 选择“美国东部” “定价计划”下拉列表** 选择“基本” -
选择“查看 + 创建”以查看设置,然后选择“创建”****。
备注:请等待部署完成。 这可能需要几分钟的时间。
-
在“概述”边栏选项卡上,选择“转到资源”按钮以导航到新创建的容器注册表帐户的边栏选项卡****。
-
在“容器注册表”边栏选项卡上的“设置”部分,选择“访问密钥” ** **。
-
在“访问密钥” 边栏选项卡上,启用“管理员用户” ****。
-
将“用户名”框的值复制到剪贴板 **。
-
打开记事本,然后将复制的值粘贴到记事本。 你稍后将在本实验室中使用此值。
祝贺你! 你已成功在 Azure 中创建容器注册表。
任务 2:创建 Docker 文件以生成容器映像
-
打开“文件资源管理器”窗口,浏览到 Allfiles (F):\Allfiles\Labs\14\Starter\webapp-lab14,然后打开文本编辑器****。
-
在项目目录中,创建一个新文件并将其命名为
Dockerfile
。 -
在 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"]
-
请确保将
<web-app-name>
替换为 .NET 8 Web 应用程序项目的名称。 -
保存 Dockerfile**。
祝贺你! 你已成功创建 Docker 文件。
任务 3:使用 Docker 文件在 Azure 上创建 Linux 容器
确保已在本地计算机上安装 Docker CLI。 如果尚未安装,请从 Docker 网站安装它。
-
在任务栏上,选择“终端”图标**。
-
在打开的命令提示符处,输入以下命令并按 Enter 键以登录 Azure 命令行接口 (CLI):
az login
-
在 Microsoft Edge 浏览器窗口中,输入 Microsoft 帐户的电子邮件地址和密码,然后选择“登录” 。
-
返回当前打开的终端“命令提示符”窗口**。 请等待登录过程完成。
-
输入以下命令,然后按 Enter,将当前目录更改为包含实验室文件的 Allfiles (F):\Allfiles\Labs\14\Starter\webapp-lab14 目录**:
cd 'F:\Allfiles\Labs\14\Starter\webapp-lab14\'
-
运行以下命令,将源代码上传到容器注册表,并将容器映像构建为容器注册表任务,将
替换为容器注册表的名称,并将 替换为映像的新名称: az acr build --registry <your-registry-name> --image <image-name>:latest .
注意:等待生成任务完成后再继续本实验室。
-
关闭“终端”窗格**。
-
打开 Azure 门户并导航到容器注册表。
-
在“容器注册表” 边栏选项卡上的“设置” 部分,选择“存储库” ** **。
-
验证 Docker 映像是否已在存储库中列出。
祝贺你! 你已成功使用 Docker 文件在 Azure 上创建了 Linux 容器。
任务 4:将 Linux 容器映像部署到 Azure 容器实例
-
在 Azure 门户中,选择页面左上角的“+ 创建资源”**。
-
在搜索栏中,键入“容器实例”并从结果中选择“容器实例”****。
-
选择创建。
-
在“创建容器实例”页面的“基本信息”选项卡中,填写以下信息(将其他项保留为默认值),然后选择“下一页:****网络:
设置 操作 “订阅”文本框 保留默认值 “资源组”下拉列表 在列表中选择 acr-sam-rg** “容器名称”部分** 输入 acisam [yourname]** “区域”下拉列表 选择“美国东部” “可用性区域”下拉列表** 选择“1” “映像源”部分 选择“Azure 容器注册表” “注册表”下拉列表 选择 acrsam [yourname]** “映像”** 下拉列表 选择 docker-image-name** “映像标记”** 下拉列表 选择 docker-image-tag** “OS 类型”部分 选择“Linux” -
在“网络”选项卡中,填写以下信息**:
设置 操作 “DNS 名称标签”文本框** 输入 dns-name** “端口”文本框** 输入 DockerFile 中的 port-number** “端口协议”下拉列表** 在列表中选择 TCP** -
选择“查看 + 创建”以查看设置,然后选择“创建”****。
备注:请等待部署完成。 这可能需要几分钟的时间。
-
在“概述”边栏选项卡上,选择“转到资源”按钮以导航到新创建的容器实例帐户的边栏选项卡****。
-
复制容器的公共 IP 地址,并将其与端口号一起粘贴到 Web 浏览器中,然后按 Enter。
<public-IP-number>:<port-number>
或<DNS-name>:<port-number>
-
应会看到 .NET Web 应用程序的网页。
祝贺你! 你已成功将 Linux 容器部署到容器实例。
任务 5:查询现有容器的容器注册表
-
打开 Azure 门户并导航到之前已创建的资源组。
-
选择在任务 4 中创建的容器注册表。
-
选择“存储库”选项卡,然后选择要查询现有容器的存储库**。
-
在“标记”部分,可以查看所选存储库的标记列表**。
-
选择标记以查看容器映像的详细信息。 这将显示容器映像的元数据,包括大小、创建日期和任何关联的层。
-
还可使用页面顶部的搜索栏搜索特定容器映像。 只需输入关键字或标记名称,然后选择“搜索”按钮**。
-
如果要删除容器映像,请选择标记,然后选择“删除”按钮**。
注意:这将永久删除容器映像,并且无法恢复。
就这么简单! 你已成功了解如何查询现有容器的容器注册表。
审阅
完成本练习后,你获得了创建容器注册表、创建 Dockerfile、生成容器映像、将 Linux 容器部署到 Azure 容器实例的实践经验。
练习 2:创建并运行 Azure 容器应用服务
在本练习中,你将了解如何使用在练习一中创建的容器映像创建容器应用。
任务 1:在 Azure 中创建容器应用
-
在 Azure 门户中,选择页面左上角的“+ 创建资源”**。
-
在搜索栏中,键入“容器应用”并从结果中选择“容器应用”****。
-
选择创建。
-
在“创建容器应用”页面的“基本信息”选项卡中,填写以下信息(将其他项保留为默认值),然后选择“下一页:**** 容器”:
设置 操作 “订阅”文本框 保留默认值 “资源组”下拉列表 在列表中选择 acr-sam-rg** “容器应用名称”部分** 输入 acasam [yourname]** “区域”下拉列表 选择“美国东部” “容器应用环境”下拉列表** 保留默认值 -
在“容器”选项卡上,填写以下信息,然后选择“入口”选项卡:****
设置 操作 “使用快速入门映像”复选框** 取消选中 “名称”文本框 输入 [你的姓名]-container-app “映像源”下拉列表** 选择“Azure 容器注册表” “注册表”下拉列表 选择 acrsam [yourname]** “映像”** 下拉列表 选择 **** “映像标记”** 下拉列表 选择“最新” “CPU 和内存”下拉列表** 在列表中选择“0.25 个 CPU 核心,0.5 Gi 内存”** -
在“入口”选项卡中,填写以下信息**:
设置 操作 “入口”复选框** 选择启用 “入口流量”框** 选择“接受来自任何位置的流量”** “入口类型”框** 选择“HTTP” “客户端证书模式”框** 选择“忽略”** “传输”下拉列表** 选择“自动”** “目标端口”文本框** 输入“5151”** -
选择“查看 + 创建”以查看设置,然后选择“创建”****。
备注:请等待部署完成。 这可能需要几分钟的时间。
-
在“概述”边栏选项卡上,选择“转到资源”按钮以导航到新创建的容器应用帐户的边栏选项卡****。
-
在“容器应用”边栏选项卡上,选择“应用程序 URL”以查看 .NET Web 应用程序的网页****。
祝贺你! 你已成功将 Linux 容器部署到容器应用。
审阅
完成本练习后,你获得了创建容器应用、将 Linux 容器部署到 Azure 容器应用的实践经验。