本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Docker 应用程序管理器组件 (aws.greengrass.DockerApplicationManager
) 允许 AWS IoT Greengrass 从托管在亚马逊 Elastic Container Registry (Amazon ECR) 上的公共映像注册表和私有注册表下载 Docker 镜像。它还允许自动管理证书 AWS IoT Greengrass ,以便安全地从 Amazon ECR 中的私有存储库下载图像。
开发运行 Docker 容器的自定义组件时,请将 Docker 应用程序管理器作为依赖关系包含在组件中,用于下载指定为构件的 Docker 映像。有关更多信息,请参阅 运行 Docker 容器。
版本
此组件具有以下版本:
-
2.0.x
类型
此组件是一个通用组件 (aws.greengrass.generic
)。Greengrass Nucleus 运行组件的生命周期脚本。
有关更多信息,请参阅组件类型。
操作系统
此组件可以安装在运行以下操作系统的核心设备上:
Linux
Windows
要求
此组件具有以下要求:
-
Greengrass 核心设备上安装的 Docker Engine
1.9.1 或更高版本。版本 20.10 是经验证可与 AWS IoT Greengrass 核心软件配合使用的最新版本。在部署运行 Docker 容器的组件之前,必须直接在核心设备上安装 Docker。 -
在部署此组件之前,Docker 进程守护程序已启动并在核心设备上运行。
-
存储在以下支持的映像源之一中的 Docker 映像:
-
Amazon Elastic Container Registry(Amazon ECR)中的公共和私有映像存储库
-
公共 Docker Hub 存储库
-
公共 Docker 可信注册表
-
-
Docker 映像作为构件包含在您的自定义 Docker 容器组件中。使用以下 URI 格式来指定您的 Docker 映像:
-
Amazon ECR 私有映像:
docker:
account-id
.dkr.ecr.region
.amazonaws.com/repository
/image
[:tag|@digest
] -
Amazon ECR 公共映像:
docker:public.ecr.aws/
repository
/image
[:tag|@digest
] -
Docker Hub 公共映像:
docker:
name
[:tag|@digest
]
有关更多信息,请参阅 运行 Docker 容器。
注意
如果您没有在映像的构件 URI 中指定映像标签或映像摘要,则在部署自定义 Docker 容器组件时,Docker 应用程序管理器会拉取该映像的最新可用版本。为确保所有核心设备都运行相同版本的映像,我们建议您在构件 URI 中包含映像标签或摘要。
-
-
运行 Docker 容器组件的系统用户必须具有根或管理员权限,或者您必须将 Docker 配置为以非根用户或非管理员用户身份运行。
-
在 Linux 设备上,您可向
docker
组中添加一个用户以调用docker
命令,无需sudo
。 -
在 Windows 设备上,您可将用户添加到
docker-users
组中以调用docker
命令,无需管理员权限。
要添加
ggc_user
或您用于运行 Docker 容器组件的非根用户至docker
组中,请运行以下命令:sudo usermod -aG docker
ggc_user
有关更多信息,请参阅以非根用户身份管理 Docker
。 -
-
如果您将 AWS IoT Greengrass Core 软件配置为使用网络代理,则必须将 Docker 配置为使用相同的代理服务器
。 -
如果您的 Docker 映像存储在 Amazon ECR 私有注册表中,则必须将令牌交换服务组件作为依赖关系包含在 Docker 容器组件中。此外,Greengrass 设备角色必须允许执行
ecr:GetAuthorizationToken
、ecr:BatchGetImage
和ecr:GetDownloadUrlForLayer
操作,如以下示例 IAM 策略中所示。{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": [ "*" ], "Effect": "Allow" } ] }
-
支持 Docker 应用程序管理器组件在 VPC 中运行。要在 VPC 中部署此组件,需要满足以下条件。
-
Docker 应用管理器组件必须具备下载映像的连接功能。例如,如果您使用 ECR,则必须连接至以下端点。
-
*.dkr.ecr.
(VPC 端点region
.amazonaws.com.rproxy.goskope.comcom.amazonaws.
)region
.ecr.dkr -
api.ecr.
(VPC 端点region
.amazonaws.com.rproxy.goskope.comcom.amazonaws.
)region
.ecr.api
-
-
端点和端口
除基本操作所需的端点和端口外,此组件还必须能够对以下端点和端口执行出站请求。有关更多信息,请参阅 允许设备流量通过代理或防火墙。
Endpoint | 端口 | 必需 | 描述 |
---|---|---|---|
|
443 | 否 |
如果您从 Amazon ECR 下载 Docker 映像,则此为必填项。 |
|
443 | 否 |
如果您从 Docker Hub 下载 Docker 映像,则此为必填项。 |
依赖项
部署组件时, AWS IoT Greengrass 还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖关系的要求,才能成功部署组件。本部分列出了此组件的已发布版本的依赖关系,以及定义每个依赖关系的组件版本的语义版本约束。您还可以在 AWS IoT Greengrass 控制台
下表列出了此组件版本 2.0.13 的依赖关系。
依赖关系 | 兼容版本 | 依赖关系类型 |
---|---|---|
Greengrass Nucleus | >=2.1.0 <2.15.0 | 软性 |
有关组件依赖关系的更多信息,请参阅组件配方参考。
配置
此组件没有任何配置参数。
本地日志文件
此组件使用与 Greengrass Nucleus 组件相同的日志文件。
/logs/greengrass.log
/greengrass/v2
查看此组件的日志
-
在核心设备上运行以下命令可实时查看此组件的日志文件。将
或/greengrass/v2
C:\greengrass\v2
替换为 AWS IoT Greengrass 根文件夹的路径。sudo tail -f
/logs/greengrass.log/greengrass/v2
更改日志
下表介绍每个组件版本的更改。
版本 |
更改 |
---|---|
2.0.13 |
Greengrass nucleus 版本 2.14.0 版本的版本已更新。 |
2.0.12 |
对 Greengrass Nucleus 版本 2.13.0 发行版进行了版本更新。 |
2.0.11 |
版本更新为 Greengrass Nucleus 版本 2.12.0 发布版。 |
2.0.10 |
版本更新为 Greengrass Nucleus 版本 2.11.0 发布版。 |
2.0.9 |
版本更新为 Greengrass Nucleus 版本 2.10.0 发布版。 |
2.0.8 |
对 Greengrass Nucleus版本 2.9.0 发行版进行了版本更新。 |
2.0.7 |
版本更新为 Greengrass Nucleus 版本 2.8.0 发布版。 |
2.0.6 |
版本更新为 Greengrass Nucleus 版本 2.7.0 发布版。 |
2.0.5 |
版本更新为 Greengrass Nucleus 版本 2.6.0 发布版。 |
2.0.4 |
版本更新为 Greengrass Nucleus 版本 2.5.0 发布版。 |
2.0.3 |
版本更新为 Greengrass Nucleus 版本 2.4.0 发布版。 |
2.0.2 |
版本更新为 Greengrass Nucleus 版本 2.3.0 发布版。 |
2.0.1 |
对 Greengrass Nucleus 版本 2.2.0 发行版进行了版本更新。 |
2.0.0 |
初始版本。 |