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仅支持对称端口映射。 |
- 重新开始 | ✓ | 重新启动的政策,必须是一个:always ,no ,on-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.io
。
domainname
在全球范围内必须是唯一的
持久卷
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-
。这被翻译成LivenessProbe
ACI。如果运行状况检查失败,则认为该容器不健康并被终止。为了使容器自动重新启动,需要使用以外的重新启动策略(由--restart
标志设置)来运行容器no
。请注意,如果未设置默认的重启策略为no
。
为了自动重启,容器还需要设置一个重启策略--restart
(docker run
默认为无重启策略)