什么是 Azure 容器实例?
容器正在变成对云应用程序执行打包、部署和管理操作的首选方式。 Azure 容器实例提供了在 Azure 中运行 Linux 或 Windows 容器的最简捷方式,既无需管理任何虚拟机,也不必采用更高级的服务。
ACI 支持常规容器。
启动时间短
与虚拟机 (VM) 相比,容器的启动优势明显。 Azure 容器实例可在数秒内启动 Azure 中的容器,且无需预配和管理 VM。
从 Docker Hub 引入 Linux 或 Windows 容器映像、专用 Azure 容器注册表或其他基于云的 Docker 注册表。 请访问常见问题解答,了解 ACI 支持哪些注册表。 Azure 容器实例会缓存几个常见的基础操作系统映像,有助于加快自定义应用程序映像的部署速度。
容器访问
使用 Azure 容器实例可以通过公共 IP 地址和完全限定的域名 (FQDN) 直接向 Internet 公开容器组。 创建容器实例时,可以指定自定义的 DNS 名称标签,以便应用程序可在 customlabel.azureregion.azurecontainer.console.azure.cn 上访问。
通过提供交互式 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 来计划 Linux 容器。 可以在创建容器组时指定 OS 类型首选项。
某些功能当前仅限于 Linux 容器:
对于 Windows 容器部署,请基于常用 Windows 基础映像使用映像。
运行单个容器组中的多个容器
Azure 容器实例支持安排单个容器组中的多个容器,这些容器共用同一容器主机、本地网络、存储和生命周期。 这样即可将主要应用程序容器与其他配角容器(例如日志记录分支)结合使用。
虚拟网络部署
Azure 容器实例允许将容器实例部署到 Azure 虚拟网络中。 部署到虚拟网络的子网中时,容器实例可以与虚拟网络中的其他资源(包括本地资源)进行安全通信(通过 VPN 网关或 ExpressRoute)。
托管的标识
Azure 容器实例支持将托管标识与容器组配合使用,这使容器组能够向任何支持 Microsoft Entra 身份验证的服务进行身份验证,而无需在容器代码中管理凭据。
注意事项
通过命令行界面 (CLI) 传递的用户凭据以纯文本形式存储在后端。 以纯文本形式存储凭证存在安全风险;Azure 建议客户将用户凭据存储在 CLI 环境变量中,以确保它们在存储在后端时进行加密/转换。
如果容器组停止工作,建议在打开支持请求之前尝试重启容器、检查应用程序代码或本地网络配置。
容器映像不能大于 15 GB,超出此大小的任何映像都可能导致意外行为:容器映像可以有多大?
某些 Windows Server 基础映像不再与 Azure 容器实例兼容:
支持哪些 Windows 基础 OS 映像?
如果容器组重启,容器组的 IP 可能会更改。 对于你的情况,建议不要使用硬编码的 IP 地址。 如果需要静态公共 IP 地址,请使用应用程序网关:容器组的静态 IP 地址 - Azure 容器实例 | Azure Learn
有些端口为服务功能而预留。 建议不要使用这些端口,因为这会导致意外行为:ACI 服务是否为服务功能预留端口?
如果在部署或运行容器时遇到问题,请先查看故障排除指南,了解常见错误和问题
由于平台维护事件,容器组可能会重启。 这些维护事件是为了确保底层基础结构的持续改进:容器已独立重启,且没有显式用户输入
ACI 不允许特权容器操作。 对于你的情况,建议不要依赖于使用根目录。
后续步骤
尝试按照快速入门指南,使用单个命令将容器部署到 Azure: