ACI集成容器功能

预计阅读时间:4分钟

Azure容器实例:运行单个容器

可以使用ACI在ACI上执行单个容器docker run。单个容器在其自己的ACI容器组中执行,该容器组将仅容纳一个容器。

容器可以用上市docker ps命令,停止去除docker stop <CONTAINER>docker rm <CONTAINER>

用于ACI容器的Docker运行选项

下表列出了受支持的docker run标志及其对应的ACI。

传奇:

  • ✓:已实施
  • n:尚未实施
  • x:不适用/没有可用的转换
旗帜 地图 笔记
--cpus 请参阅容器资源
-d,-分离 容器启动时从容器日志中分离。默认情况下,命令行保持连接状态,并遵循容器日志。
-域名 请参阅暴露端口
--e,-env 设置环境变量。
--env文件 从外部文件设置环境变量。
--health-cmd 指定运行状况检查命令。请参阅“健康检查”
-健康间隔 指定运行状况检查间隔
-健康重试 指定重试的健康检查次数
--health-start-period 指定运行状况检查初始延迟
-健康超时 指定运行状况检查超时
-l,--label X 由于ACI标签的限制,在Docker ACI集成中不受支持。
-m,-内存 请参阅容器资源
- 名称 提供容器的名称。名称对于ACI资源组必须是唯一的。默认情况下会生成一个名称。
-p,-发布 请参阅暴露端口。ACI仅支持对称端口映射。
- 重新开始 重新启动的政策,必须是一个:alwaysnoon-failure
- R M X 不支持,因为ACI不支持自动删除容器
-v,--volume 请参阅持久卷

暴露端口

您可以使用以下命令公开容器的一个或多个端口:docker run -p <PORT>:<PORT> 如果在运行容器时公开了端口,则将公开相应的ACI容器组,其中分配了公共IP,并且可以访问所需的端口。

注意:ACI不支持端口映射,因此在使用时必须指定相同的端口号-p <PORT>:<PORT>

公开端口时,容器还可以指定服务--domainname标志来设置DNS主机名。domainname将用于指定ACI DNS标签名称,并且ACI容器组将可通过访问<DOMAINNANE>.<REGION>.azurecontainer.iodomainname在全球范围内必须是唯一的 .azurecontainer.io

持久卷

Docker卷映射到Azure文件共享,每个文件共享都是Azure存储帐户的一部分。可以使用指定一个或多个卷docker run -v <STORAGE-ACCOUNT>/<FILESHARE>:<TARGET-PATH>

对于不同的卷,运行命令可以多次使用--volume-v标志。这些卷可以使用相同或不同的存储帐户。不同卷安装的目标路径必须不同且不能重叠。不支持安装单个文件或安装Azure File Share的子文件夹。

存储帐户的凭据将在部署时使用Azure登录名自动获取,以检索所使用的每个存储帐户的存储帐户密钥。

集装箱资源

使用运行容器时可以设置CPU和内存预留docker run --cpus 1.5 --memory 2G

无法设置与单个容器上的资源保留不同的资源限制。ACI允许为容器组中的容器设置资源限制,但是这些限制必须保留在整个组的保留资源之内。如果在容器组中部署了单个容器,则资源限制必须等于资源预留。

日志

您可以使用命令查看容器日志docker logs <CONTAINER-ID>

您可以使用--follow-f)选项跟踪日志。当使用运行容器时docker run,默认情况下,命令行在容器启动时保持与容器日志的连接。使用docker run --detach不遵循一旦容器启动日志。

注意:跟随ACI日志可能会有显示问题,尤其是在调整跟随容器日志的终端的大小时。这是由于ACI提供了原始日志提取,但没有日志流。跟随日志时,每2秒有效地拉动一次日志。

健康检查

可以使用带有前缀的标志来描述运行状况检查--health-。这被翻译成LivenessProbeACI。如果运行状况检查失败,则认为该容器不健康并被终止。为了使容器自动重新启动,需要使用以外的重新启动策略(由--restart标志设置)来运行容器no。请注意,如果未设置默认的重启策略为no

为了自动重启,容器还需要设置一个重启策略--restartdocker run默认为无重启策略)

DockerAzure集成ACI容器cli部署