你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
什么是 Azure 容器实例?
容器正在变成对云应用程序执行打包、部署和管理操作的首选方式。 Azure 容器实例提供了在 Azure 中运行 Linux 或 Windows 容器的最简捷方式,既无需管理任何虚拟机,也不必采用更高级的服务。
ACI 支持常规、机密和现成容器。 ACI 可以通过 NGroups 用作单实例或多实例,也可以通过 ACI 上的虚拟节点在 Azure Kubernetes 服务 (AKS) 群集中部署 Pod,以此来获取业务流程功能。 为了实现更快的启动时间,ACI 支持备用池。
启动时间短
与虚拟机 (VM) 相比,容器的启动优势明显。 Azure 容器实例可在数秒内启动 Azure 中的容器,且无需预配和管理 VM。
从 Docker Hub 引入 Linux 或 Windows 容器映像、专用 Azure 容器注册表或其他基于云的 Docker 注册表。 请访问常见问题解答,了解 ACI 支持哪些注册表。 Azure 容器实例会缓存几个常见的基础操作系统映像,有助于加快自定义应用程序映像的部署速度。
为了实现更快的启动时间,ACI 支持备用池。
容器访问
使用 Azure 容器实例可以通过公共 IP 地址和完全限定的域名 (FQDN) 直接向 Internet 公开容器组。 创建容器实例时,可以指定自定义的 DNS 名称标签,以便应用程序可在 customlabel.azureregion.azurecontainer.io 上访问。
通过提供交互式 shell,Azure 容器实例还可以在正在运行的容器中执行命令,以帮助进行应用程序开发和故障排除。 访问通过 HTTPS 进行,并使用 TLS 来保护客户端连接。
重要
Azure 容器实例要求服务器和应用程序的所有安全连接都使用 TLS 1.2。 对 TLS 1.0 和 1.1 的支持已停用。
合规部署
虚拟机监控程序级别的安全性
从历史上看,容器提供应用程序依赖项隔离和资源治理,但针对恶意多租户使用的强度不足。 Azure 容器实例保证容器中的应用程序像在 VM 中一样保持隔离状态。
客户数据
Azure 容器实例服务不存储客户数据。 但可存储用于创建资源的 Azure 订阅的订阅 ID。 需要存储订阅 ID 才能确保容器组继续按预期运行。
自定义大小
容器通常优化成只运行单个应用程序,但此类应用程序的具体需求可能差异很大。 Azure 容器实例允许确切地指定 CPU 核心数和内存量,因此可提供最佳的利用方式。 费用取决于具体请求并按秒计收,因此可以根据实际需求来严格控制花费。
对于计算密集型作业(如机器学习),Azure 容器实例可以安排 Linux 容器使用 NVIDIA Tesla GPU 资源(预览版)。
持久存储
为了通过 Azure 容器实例来检索和持久保存状态,我们提供由 Azure 存储支持的直接装载 Azure 文件共享功能。
Linux 和 Windows 容器
Azure 容器实例可以使用同一 API 来计划 Windows 和 Linux 容器。 可以在创建容器组时指定 OS 类型首选项。
某些功能当前仅限于 Linux 容器:
对于 Windows 容器部署,请基于常用 Windows 基础映像使用映像。
运行单个容器组中的多个容器
Azure 容器实例支持安排单个容器组中的多个容器,这些容器共用同一容器主机、本地网络、存储和生命周期。 这样即可将主要应用程序容器与其他配角容器(例如日志记录分支)结合使用。
虚拟网络部署
Azure 容器实例允许将容器实例部署到 Azure 虚拟网络中。 部署到虚拟网络的子网中时,容器实例可以与虚拟网络中的其他资源(包括本地资源)进行安全通信(通过 VPN 网关或 ExpressRoute)。
可用性区域支持
Azure 容器实例支持区域容器组部署,这表示实例将固定到特定的自选可用性区域。 可以按容器组指定可用性区域。
托管的标识
Azure 容器实例支持将托管标识与容器组配合使用,这使容器组能够向任何支持 Microsoft Entra 身份验证的服务进行身份验证,而无需在容器代码中管理凭据。
经过托管标识身份验证的映像拉取
Azure 容器实例可以使用托管标识向 Azure 容器注册表 (ACR) 实例进行身份验证,从而无需直接在容器组定义中包含用户名和密码即可拉取映像。
机密容器部署
ACI 上的机密容器使你能够在受信任的执行环境 (TEE) 中运行容器,该环境可为容器工作负载提供基于硬件的机密性和完整性保护。 ACI 上的机密容器可以保护正在使用的数据,并加密内存中正在处理的数据。 ACI 上的机密容器支持作为 SKU,可在部署工作负载时选择。 有关详细信息,请参阅机密容器组。
现成容器部署
ACI 现成容器允许客户在未使用的 Azure 容量上运行可中断的容器化工作负载,并且价格优惠,最低可达到常规优先级 ACI 容器的 70%。 当 Azure 遇到剩余容量不足的情况时,ACI 现成容器可能会被抢占,因此适用于没有严格可用性要求的工作负载。 客户将为每秒内存和核心使用量付费。 若要利用 ACI 现成容器,可以为工作负载部署特定属性标志,以指示你要使用现成容器组并利用折扣定价模型。 有关详细信息,请参阅现成容器组。
NGroups
NGroups 提供用于管理多个相关容器组的高级功能。 NGroups 支持维护指定数量的容器组、执行滚动升级、跨多个可用性区域部署、对流入量使用负载均衡器和部署机密容器。 有关详细信息,请参阅关于 NGroups。
Azure 容器实例上的虚拟节点
Azure 容器实例上的虚拟节点让你可以在作为 ACI 中的容器组运行的 Azure Kubernetes 服务 (AKS) 群集中部署 Pod。 这样就可以使用熟悉的 Kubernetes 构造来协调容器组。 由于虚拟节点由 ACI 的无服务器基础结构提供支持,因此你可以快速纵向扩展工作负载,而无需等待 Kubernetes 群集自动缩放程序部署 VM 计算节点。
注意事项
通过命令行接口 (CLI) 传递的用户凭据以纯文本形式存储在后端。 以纯文本形式存储凭证存在安全风险;Microsoft 建议客户将用户凭据存储在 CLI 环境变量中,以确保在后端存储时对其进行加密/转换。
如果容器组停止工作,建议在打开支持请求之前尝试重启容器、检查应用程序代码或本地网络配置。
容器映像不能大于 15 GB,超出此大小的任何映像都可能导致意外行为:容器映像可以有多大?
某些 Windows Server 基础映像不再与 Azure 容器实例兼容:
支持哪些 Windows 基础 OS 映像?
如果容器组重启,容器组的 IP 可能会更改。 对于你的情况,建议不要使用硬编码的 IP 地址。 如果需要静态公共 IP 地址,请使用应用程序网关:容器组的静态 IP 地址 - Azure 容器实例 | Microsoft Learn
有些端口为服务功能而预留。 建议不要使用这些端口,因为这会导致意外行为:ACI 服务是否为服务功能预留端口?
如果在部署或运行容器时遇到问题,请先查看故障排除指南,了解常见错误和问题
由于平台维护事件,容器组可能会重启。 这些维护事件是为了确保底层基础结构的持续改进:容器已独立重启,且没有显式用户输入
ACI 不允许特权容器操作。 对于你的情况,建议不要依赖于使用根目录。
后续步骤
尝试按照快速入门指南,使用单个命令将容器部署到 Azure: