将容器化应用部署到 Azure

在本指南中,您将学习如何:

  • 为您的应用程序创建一个容器镜像。
  • 将镜像推送到容器注册表。
  • 将镜像部署到 Azure App Service 或 Azure Container Apps。

先决条件

创建应用程序镜像

如果您已经有镜像,请跳过此步骤并继续到将镜像推送到容器注册表步骤。

  1. 在VS Code中打开应用程序文件夹。

  2. 打开命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 并使用 Docker Images: Build Image... 命令来构建镜像。

    构建容器镜像

    您可以在构建镜像命令的输出中找到镜像名称,同样可以在Docker Explorer的镜像面板中找到。

    构建镜像输出

将镜像推送到容器注册表

在将镜像部署到应用服务或容器应用之前,必须将镜像上传到容器注册表。镜像可以上传到Azure 容器注册表 (ACR)Docker Hub

  1. 打开Docker Explorer并选择Registries组下的Connect Registry...图标,然后按照提示操作。选择提供者(Azure或Docker Hub)并提供凭据以连接到注册表。

    连接到注册表

  2. 现在注册表将在注册表下可见。

    注册表

  3. 可选地,标记镜像。为了将镜像上传到注册表,镜像需要使用注册表名称进行标记,以便docker push将其上传到正确的注册表。

    • 要在Azure ACR中创建一个注册表,请打开Docker视图中的注册表部分,如果尚未登录,请登录到Azure,然后右键单击您要使用的订阅,并选择创建注册表

    • 上一节中构建的镜像将出现在Docker Explorer的Images部分。右键点击并选择Tag...

      标签图片

    • 指定新名称 /: 并完成标签操作。例如,名为 WebApp6 的 ACR 的新镜像名称将是 'webapp6.azurecr.io/webapp6:latest',而对于 Docker Hub,它将是 'myusername/webapp6:latest'。

  4. 图像将显示在Docker资源管理器中,位于图像标签指向的注册表下。选择此图像并选择推送。如果图像尚未被标记,系统将提示您选择要推送到的注册表,并根据选择标记图像。

    推送图片

  5. 一旦推送命令完成。刷新镜像推送到的注册表节点,上传的镜像将会显示出来。

    刷新注册表

将镜像部署到Azure

在上一节中,图像被推送到远程容器注册表。现在将此图像部署到 Azure App Service 或 Azure Container Apps。

  1. 在Docker Explorer中,导航到Registries下的您的镜像,右键单击标签,然后选择将镜像部署到Azure应用服务...将镜像部署到Azure容器应用...

    部署到Azure应用服务

  2. 当提示时,提供App Service或Container App的值。

    • New web app name: The name must be unique across Azure.
    • Resource group: Select an existing resource group or create a new one.
    • App Service plan: Select an existing App Service Plan or create a new one. (An App Service Plan defines the physical resources that host the website; you can use a basic or free plan tier for this tutorial).
  3. 当部署完成后,Visual Studio Code 会显示一个包含网站 URL 的通知。

    部署完成通知

  4. 你也可以在Visual Studio Code的输出面板中的Docker部分查看结果。

    部署完成输出

  5. 要浏览已部署的网站,您可以使用Ctrl+点击在输出面板中打开URL。您可能需要等待一段时间,应用程序才能在Azure中上线。新的应用服务或容器应用也会出现在Visual Studio Code的Azure视图中,您可以在其中右键点击网站并选择浏览网站

    Web应用程序

下一步

继续阅读以了解更多信息

  • Azure Extensions - VS Code 市场上有数百个适用于 Azure 和云的扩展。
  • Deploying to Azure - 学习如何逐步将您的应用程序部署到Azure。
  • 使用MongoDB - 在VS Code中创建、管理和查询MongoDB数据库。