你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

什么是 Azure 容器实例?

容器正在变成对云应用程序执行打包、部署和管理操作的首选方式。 Azure 容器实例提供了在 Azure 中运行容器的最简捷方式,既无需管理任何虚拟机,也不必采用更高级的服务。

不管什么方案(包括简单应用程序、任务自动化、生成作业),只要能够在隔离容器中操作,就可以使用 Azure 容器实例这种解决方案。 对于需要完整容器业务流程的方案(包括跨多个容器的服务发现、自动缩放、协调式应用程序升级),建议使用 Azure Kubernetes Service (AKS)。 建议通读注意事项和限制以及常见问题解答,了解部署容器实例时的最佳做法。

启动时间短

与虚拟机 (VM) 相比,容器的启动优势明显。 Azure 容器实例可在数秒内启动 Azure 中的容器,且无需预配和管理 VM。

从 Docker Hub 引入 Linux 或 Windows 容器映像、专用 Azure 容器注册表或其他基于云的 Docker 注册表。 请访问常见问题解答,了解 ACI 支持哪些注册表。 Azure 容器实例会缓存几个常见的基础操作系统映像,有助于加快自定义应用程序映像的部署速度。

容器访问

使用 Azure 容器实例可以通过公共 IP 地址和完全限定的域名 (FQDN) 直接向 Internet 公开容器组。 创建容器实例时,可以指定自定义的 DNS 名称标签,以便应用程序可在 customlabel.azureregion.azurecontainer.io 上访问。

通过提供交互式 shell,Azure 容器实例还可以在正在运行的容器中执行命令,以帮助进行应用程序开发和故障排除。 访问通过 HTTPS 进行,并使用 TLS 来保护客户端连接。

重要

从 2020 年 1 月 13 日开始,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)。

机密容器部署

ACI 上的机密容器使你能够在受信任的执行环境 (TEE) 中运行容器,该环境可为容器工作负载提供基于硬件的机密性和完整性保护。 ACI 上的机密容器可以保护正在使用的数据,并加密内存中正在处理的数据。 ACI 上的机密容器支持作为 SKU,可在部署工作负载时选择。 有关详细信息,请参阅机密容器组

现成容器部署

ACI 现成容器允许客户在未使用的 Azure 容量上运行可中断的容器化工作负载,并且价格优惠,最低可达到常规优先级 ACI 容器的 70%。 当 Azure 遇到剩余容量不足的情况时,ACI 现成容器可能会被抢占,因此适用于没有严格可用性要求的工作负载。 客户将为每秒内存和核心使用量付费。 若要利用 ACI 现成容器,可以为工作负载部署特定属性标志,以指示你要使用现成容器组并利用折扣定价模型。 有关详细信息,请参阅现成容器组

注意事项

通过命令行接口 (CLI) 传递的用户凭据以纯文本形式存储在后端。 以纯文本形式存储凭证存在安全风险;Microsoft 建议客户将用户凭据存储在 CLI 环境变量中,以确保在后端存储时对其进行加密/转换。

如果容器组停止工作,建议在打开支持请求之前尝试重启容器、检查应用程序代码或本地网络配置。

容器映像不能大于 15 GB,超出此大小的任何映像都可能导致意外行为:容器映像可以有多大?

某些 Windows Server 基础映像不再与 Azure 容器实例兼容:
支持哪些 Windows 基础 OS 映像?

如果容器组重启,容器组的 IP 可能会更改。 对于你的情况,建议不要使用硬编码的 IP 地址。 如果需要静态公共 IP 地址,请使用应用程序网关:容器组的静态 IP 地址 - Azure 容器实例 | Microsoft Learn

有些端口为服务功能而预留。 建议不要使用这些端口,因为这会导致意外行为:ACI 服务是否为服务功能预留端口?

如果在部署或运行容器时遇到问题,请先查看故障排除指南,了解常见错误和问题

由于平台维护事件,容器组可能会重启。 这些维护事件是为了确保底层基础结构的持续改进:容器已独立重启,且没有显式用户输入

ACI 不允许特权容器操作。 对于你的情况,建议不要依赖于使用根目录

后续步骤

尝试按照快速入门指南,使用单个命令将容器部署到 Azure: