# 本人声明:
# 1、翻译来自官方网站原文。仅做个人学习。
# 2、个人能力十分有限,借助了翻译工具并作了修改和备注【ps:xxx】,但仍只能满足个人理解使用,错误和漏洞百出,希望读者指正批评。
# 3、官网地址:[EdgeX Foundry Documentation](https://docs.edgexfoundry.org/2.4/)
开始使用 Docker
介绍
这些说明供用户使用最新的稳定 Docker镜像获取和运行 EdgeX Foundry。
如果您希望获取最新版本的 EdgeX Docker 映像(在发布之前),请参阅EdgeX Nexus 存储库指南。
Get & Run EdgeX Foundry
安装 Docker & Docker Compose
要运行容器化的EdgeX,您需要先安装 Docker。请参阅docs.docker.com/engine/inst… 以了解如何安装。如果您是 Docker 的新手,同一个网站为您提供 教育信息。下面的短视频也很 信息丰富的www.youtube.com/watch?time_…
使用 Docker Compose 来编排获取(或拉取)、安装、 并启动 EdgeX 微服务容器。还可以使用 Docker Compose 来停止微服务容器。请参阅:docs.docker.com/compose/ 了解有关 Docker Compose 的更多信息并docs.docker.com/compose/ins… 安装它。
您无需成为Docker(或Docker Compose)的专家即可获取和运行EdgeX。本指南提供了在您的环境中运行 EdgeX 的步骤。一些关于Docker和Docker Compose的知识是很好的,但不是必需的。此处提供的基本 Docker 和 Docker compose命令使您能够在 EdgeX 中运行、更新和诊断问题。
选择 EdgeX foundry compose文件
安装 Docker 和 Docker Compose 后,您需要一个 EdgeX Docker Compose 文件。EdgeX Foundry有十几个微服务,每个服务都部署在自己的Docker容器中。此文件是要运行的所有 EdgeX Foundry 微服务的清单。Docker compose文件提供了有关如何运行每个服务的详细信息。具体来说,Docker Compose 文件是一个清单文件,其中列出了:
- 应下载的 Docker 容器映像,
- 容器应启动的顺序,
- 应在其下运行容器的参数(例如端口)
EdgeX 开发团队为每个版本提供 Docker Compose 文件。访问项目的GitHub并找到edgex-compose存储库。此存储库包含每个 EdgeX 版本/版本的所有 EdgeX Docker compose文件。每个版本的compose文件位于单独的分支中。单击按钮以查看所有分支。main
edgex-compose 存储库包含每个版本的分支。选择发布分支以查找每个版本的 Docker compose文件。
找到包含要运行的 EdgeX 版本的 EdgeX Docker compose文件的分支。
注意
Thebranch 包含 Docker Compose 文件,这些文件使用从贡献者提交的最新代码(来自夜间构建)创建的项目。大多数最终用户应避免使用这些 Docker compose文件。用户应使用最新版本的 EdgeX 的 Docker compose文件。main
在每个 edgex-compose 分支中,您会发现几个 Docker Compose 文件(所有扩展名为 .yml)。文件的名称将建议撰写文件将帮助设置的 EdgeX 实例的类型。下表提供了最新版本(爱尔兰)的 Docker Compose 文件名列表。找到匹配的 Docker compose文件:
- 您的硬件(x86 或 ARM)
- 您希望打开或关闭安全服务
| 文件名 | docker-compose内容 |
|---|---|
| docker-compose-arm64.yml | 指定 x86 容器,使用 Redis 数据库进行持久性,并包括安全服务 |
| docker-compose-no-secty-arm64.yml | 指定 ARM 64 容器,使用 Redis 数据库进行持久性,但不包括安全服务 |
| docker-compose-no-secty.yml | 指定 x86 容器,使用 Redis 数据库进行持久性,但不包括安全服务 |
| docker-compose.yml | 指定 x86 容器,使用 Redis 数据库进行持久性,并包括安全服务 |
| docker-compose-no-secty-with-ui-arm64. | 与docker-compose-no-secty-arm64.yml相同,但也包括EdgeX用户界面 |
| docker-compose-no-secty-with-ui.yml | 与docker-compose-no-secty.yml相同,但也包括EdgeX用户界面 |
| docker-compose-portainer.yml | 指定 Portainer 用户界面扩展(与 x86 或 ARM EdgeX 平台一起使用) |
下载 EdgeX foundry合成文件
选择要使用的 edgex-compose 的发布分支后,使用您喜欢的工具下载它。下面的示例使用wget为没有安全性的爱尔兰版本获取 Docker Compose。
x86
wget https://raw.githubusercontent.com/edgexfoundry/edgex-compose/ireland/docker-compose-no-secty.yml -O docker-compose.yml
ARM
wget https://raw.githubusercontent.com/edgexfoundry/edgex-compose/ireland/docker-compose-no-secty-arm64.yml -O docker-compose.yml
注意
上面的命令将 Docker Compose 提取到当前目录中名为“docker-compose.yml”的文件。默认情况下,Docker Compose 命令会查找名为“docker-compose.yml”的文件。您可以使用备用文件名,但在发出 Docker compose命令时必须指定该文件名。有关帮助,请参阅撰写参考文档。
生成自定义 Docker compose文件
分支中的 Docker compose文件包含配置为使用消息总线的标准 EdgeX 服务集,并且仅包括虚拟和 REST 设备服务。如果需要为消息总线运行或使用不同的设备服务,则需要标准 Docker compose文件之一的修改版本。您可以手动将设备服务添加到现有 EdgeX compose文件之一,或者使用 EdgeX compose生成器工具生成包含要包含的服务的新自定义compose文件。使用 Compose Builder 时,您不必担心添加所有必要的端口、变量等,因为该工具将在文件中为您生成服务元素。compose生成器工具随河内版本一起添加。您将在每个发布分支中找到compose生成器工具,因为这些分支的compose生成器文件夹下。您还将在分支上找到一个 compose-builder 文件夹,用于为夜间构建创建自定义 Compose 文件。ireland``Redis``MQTT``Hanoi``main
执行以下操作以使用此工具生成自定义撰写文件:
- 克隆 edgex compose仓库。
git clone https://github.com/edgexfoundry/edgex-compose.git
- 将目录更改为克隆并签出相应的发布分支。此处显示了爱尔兰发布分支。
cd edgex-compose/
git checkout kamakura
- 将目录更改为 compose-builder 文件夹,然后使用该命令生成自定义compose文件。生成的 Docker compose文件已命名。以下是一些示例:
make gen <options>``docker-compose.yaml
cd compose-builder/
make gen ds-mqtt mqtt-broker
- Generates secure Compose file configured to use MQTT for the message bus, adds then MQTT broker and the Device MQTT services.
make gen no-secty ds-modbus
- Generates non-secure compose file with just the Device Modbus device service.
make gen no-secty arm64 ds-grove
- Generates non-secure compose file for ARM64 with just the Device Grove device service.
edgex 2.2
Edgex 2.2中的新功能是 TUI 生成器工具,可引导用户生成和运行自定义compose文件。在 Linux 终端中 从文件夹运行并从菜单中选择。compose-builder``./tui-generator.sh
有关所有可用选项的详细信息,请参阅组合生成器目录中的自述文件。compose生成器因版本而异,因此请确保查阅相应版本分支中的自述文件。有关最新版本的撰写生成器选项的详细信息,请参阅compose生成器自述文件。make gen
注意
生成的 Docker compose文件可能需要根据您的特定需求进行其他自定义,例如环境覆盖以设置适当的主机 IP 地址等。
运行 EdgeX Foundry
现在您已经有了 EdgeX Docker compose文件,可以运行 EdgeX 了。按照以下步骤获取容器镜像并启动 EdgeX!
在命令终端中,将目录更改为 docker-compose.yml 的位置。在终端中运行以下命令以拉取(获取)然后启动 EdgeX 容器。
docker-compose up -d
警告
如果您使用的是 Docker Compose 版本 2,请在继续之前替换。此更改应应用于本教程中的所有内容。请参阅:www.docker.com/blog/announ… 了解更多信息。docker-compose``docker compose``docker-compose
信息
如果您愿意,可以先获取镜像,然后运行它们。这使您可以在尝试运行之前确保所需的 EdgeX 镜像都可用。
docker-compose pull
docker-compose up -d
注意
-d 选项表示您希望 Docker Compose 在后台模式下运行 EdgeX 容器 - 即在后台运行容器。如果没有 -d,容器将在终端中全部启动,为了进一步使用终端,您必须停止容器。
验证 EdgeX 代工厂是否正在运行
在同一终端中,运行如下所示的进程状态命令,以确认所有 容器已下载并启动。
docker-compose ps
如果所有 EdgeX 容器都正确拉取并启动且没有错误,您应该会看到类似于上图的进程状态 (ps)。如果您使用的是自定义compose文件,则容器列表可能会有所不同。另请注意,某些“设置”容器设计为在配置 EdgeX 实例后启动然后退出。
检查 EdgeX 代工厂的状态
除了 EdgeX 容器的进程状态外,还有许多其他工具可用于检查 EdgeX 实例的运行状况和状态。
EdgeX 铸造厂容器日志
使用以下命令查看任何服务的日志。
# see the logs of a service
docker-compose logs -f [compose-service-name]
# example - core data
docker-compose logs -f data
有关 EdgeX Docker compose服务名称的列表,请参阅EdgeX 容器名称。
检查 EdgeX 服务日志通常指示服务是正常运行还是有错误。
查看完日志内容后,选择Control-c停止输出到终端。
ping连通性检查
每个 EdgeX 微服务都有一个对“ping”HTTP 请求的内置响应。在网络环境中,使用ping 请求检查网络资源的可访问性。EdgeX 使用相同的概念来检查微服务的可用性或可访问性。EdgeX 微服务容器运行后,您可以“ping”任何一个微服务以检查它是否正在运行。打开浏览器或 HTTP REST 客户端工具,并使用服务的 ping 地址(如下所述)检查是否可用。
http://localhost:[service port]/api/v2/ping
有关 EdgeX 默认服务端口的列表,请参阅EdgeX 默认服务端口。
“ping”EdgeX 微服务允许您检查其可用性。如果服务未响应 ping,则服务已关闭或出现问题。
注册检查
EdgeX 使用开源Consul项目作为其注册表 服务。所有 EdgeX 微服务都应在启动时向 Consul 注册。转到 Consul 的仪表板 UI 可以查看哪些服务已启动。在http://localhost:8500/ui 找到UI。
edgeX 2.0
请注意,从 EdgeX 2.0 开始,可以保护consul。当 EdgeX 使用安全Consul在安全模式下运行时,您必须提供 Consul 的访问令牌才能访问上面引用的仪表板 UI。有关详细信息,请参阅如何获取领事 ACL 令牌。