Centos7中安装EdgeX Foundry边缘计算
=====1. 环境设置 ======
OS: CentOS Linux release 7.8.2003 (Core)
IP: 47.108.146.200
=====2. 应用设置======
A)安装Docker 和Docker Compose:
docker-ce的安装前如果存在系统自带的docker,且版本较低,可以使用下面命令删除旧版本
|
1
|
yum remove docker docker-common docker-selinux docker-engine |
更新yum包
|
1
|
sudo yum update |
安装需要的软件包
|
1
|
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 |
添加软件源信息
|
1
|
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo |
更新安装docker-ce
|
1
2
|
sudo yum makecache fastsudo yum -y install docker-ce |
开启docker-ce
|
1
|
sudo systemctel restart docker<br>sudo systemctl enable docker |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# 注意:# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。# vim /etc/yum.repos.d/docker-ee.repo# 将[docker-ce-test]下方的enabled=0修改为enabled=1## 安装指定版本的Docker-CE:# Step 1: 查找Docker-CE的版本:# yum list docker-ce.x86_64 --showduplicates | sort -r# Loading mirror speeds from cached hostfile# Loaded plugins: branch, fastestmirror, langpacks# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable# Available Packages# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)# sudo yum -y install docker-ce-[VERSION] |
使用docker version验证docker安装成功:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
~]# docker versionClient: Docker Engine - Community Version: 19.03.11 API version: 1.40 Go version: go1.13.10 Git commit: 42e35e61f3 Built: Mon Jun 1 09:13:48 2020 OS/Arch: linux/amd64 Experimental: falseServer: Docker Engine - Community Engine: Version: 19.03.11 API version: 1.40 (minimum version 1.12) Go version: go1.13.10 Git commit: 42e35e61f3 Built: Mon Jun 1 09:12:26 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683 |
Docker-compose的安装:
更新软件源
|
1
2
|
yum -y install epel-releaseyum -y install python-pip |
安装docker-compose
|
1
|
pip install docker-compose |
验证docker-compose安装成功
|
1
2
3
4
5
|
~]# docker-compose versiondocker-compose version 1.26.0, build unknowndocker-py version: 4.2.1CPython version: 3.8.2OpenSSL version: OpenSSL 1.0.2k-fips 26 Jan 2017 |
=====3. EdgeX 部署======
A) 访问下载地址:https://github.com/edgexfoundry/developer-scripts/tree/master/releases
查看使用哪个版本的compose-file文件:此例子使用 EdgeX Foundry, Delhi, version 0.7.1 也就是下图中顺序第三个delhi/compose-files

下载文件:docker-compose-delhi-0.7.1.yml(此文件中包含了运行edgex的所有核心镜像)

B) 下载此文件内容到文件docker-compose.yml中(此例默认放在/root中)
|
1
2
3
4
5
6
|
~]# lltotal 16-rw-------. 1 root root 1249 anaconda-ks.cfg-rw-r--r--. 1 root root 11419 docker-compose.yml~]# pwd/root |
C) 由于你懂的原因,这里添加加速器:
此例采用的是daocloud的加速器,具体可以参考:https://www.daocloud.io/mirror
Linux环境使用下面的脚本:
|
1
|
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io |
D)查看要下周的核心镜像和拉取下载镜像
查看要下载的镜像名称
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
~]# docker-compose config --servicesvolumeconsulconfig-seedmongologgingnotificationsmetadatadatacommandschedulerexport-clientexport-distrorulesenginedevice-virtualuiportainer |
拉取下载镜像:(全部一定要为done)
说明:Pulls images for services defined in a Compose file, but does not start the containers.
这里只是拉取镜像,但是并未启动镜像
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
~]# docker-compose pullPulling volume ... donePulling consul ... donePulling config-seed ... donePulling mongo ... donePulling logging ... donePulling notifications ... donePulling metadata ... donePulling data ... donePulling command ... donePulling scheduler ... donePulling export-client ... donePulling export-distro ... donePulling rulesengine ... donePulling device-virtual ... donePulling ui ... donePulling portainer ... done |
E)启动镜像
注意:-d 选项表示 Docker Compose 以分离模式运行 EdgeX 容器(即在后台运行容器)如果没有 -d,容器将在终端运行。如果后续想要使用终端,必须先停止容器。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
~]# docker-compose up -dStarting edgex-files ... doneStarting edgex-support-rulesengine ... doneStarting edgex-mongo ... doneStarting edgex-core-consul ... doneStarting root_portainer_1 ... doneStarting edgex-config-seed ... doneStarting edgex-support-logging ... doneStarting edgex-support-notifications ... doneStarting edgex-core-metadata ... doneStarting edgex-core-data ... doneStarting edgex-export-client ... doneStarting edgex-support-scheduler ... doneStarting edgex-core-command ... doneStarting edgex-export-distro ... doneStarting edgex-device-virtual ... done |
F)(选看内容)如果不使用edgex了的时候可以关闭镜像
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
~]# docker-compose stopStopping edgex-export-distro ... doneStopping edgex-device-virtual ... doneStopping edgex-export-client ... doneStopping edgex-support-scheduler ... doneStopping edgex-core-command ... doneStopping edgex-support-notifications ... doneStopping edgex-core-data ... doneStopping edgex-core-metadata ... doneStopping edgex-support-logging ... doneStopping edgex-mongo ... doneStopping root_portainer_1 ... doneStopping edgex-core-consul ... doneStopping edgex-support-rulesengine ... doneStopping edgex-files ... done |
G)(选看内容)如果彻底不使用edgex了的时候可以删除镜像(谨慎操作)
|
1
|
Stop and remove containers, networks, images, and volumes~]# docker-compose down |
|
1
|
~]# docker-compose down |
H) 接上面的E, 启动以后验证镜像容器启动情况:
|
1
|
docker-compose ps -a |
|
1
|
或者 docker ps -a --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}\t{{.RunningFor}}"<em id="__mceDel" style=" font-family: "PingFang SC", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px"> </em> |
如下:edgex-config-seed 在启动后不久就会更改状态为Exit 0(这是正常情况,暂时不用管)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
~]# docker-compose ps -a Name Command State Ports ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------edgex-config-seed /bin/sh -c /edgex/cmd/conf ... Exit 0 edgex-core-command /core-command --consul --p ... Up 0.0.0.0:48082->48082/tcp edgex-core-consul docker-entrypoint.sh agent ... Up 8300/tcp, 8301/tcp, 8301/udp, 8302/tcp, 8302/udp, 0.0.0.0:8400->8400/tcp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/tcp, 8600/udpedgex-core-data /core-data --consul --prof ... Up 0.0.0.0:48080->48080/tcp, 0.0.0.0:5563->5563/tcp edgex-core-metadata /core-metadata --consul -- ... Up 0.0.0.0:48081->48081/tcp, 48082/tcp edgex-device-virtual /bin/sh -c java -jar -Djav ... Up 0.0.0.0:49990->49990/tcp edgex-export-client /export-client --consul -- ... Up 0.0.0.0:48071->48071/tcp edgex-export-distro /export-distro --consul -- ... Up 0.0.0.0:48070->48070/tcp, 0.0.0.0:5566->5566/tcp edgex-files /bin/sh -c /usr/bin/tail - ... Up edgex-mongo docker-entrypoint.sh /bin/ ... Up 0.0.0.0:27017->27017/tcp edgex-support-logging /support-logging --consul ... Up 0.0.0.0:48061->48061/tcp edgex-support-notifications /support-notifications --c ... Up 0.0.0.0:48060->48060/tcp edgex-support-rulesengine /bin/sh -c java -jar -Djav ... Up 0.0.0.0:48075->48075/tcp edgex-support-scheduler /support-scheduler --consu ... Up 0.0.0.0:48085->48085/tcp root_portainer_1 /portainer -H unix:///var/ ... Up 0.0.0.0:9000->9000/tcp |
通过GUI界面查看服务的情况:
在启动的服务中有一个consul服务(看下面红色标注的端口):
|
1
|
edgex-core-consul docker-entrypoint.sh agent ... Up 8300/tcp, 8301/tcp, 8301/udp, 8302/tcp, 8302/udp, 0.0.0.0:8400->8400/tcp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/tcp, 8600/udp |
在浏览器输入本机IP(192.168.0.133)访问: http://192.168.0.133:8500

到此 edgex的核心服务安装部署完毕。
********************************************************************************
附录:如果需要跟踪容器的日志,使用docker
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
~]# docker ps -a6d5dbc2db5ba edgexfoundry/docker-core-config-seed-go:0.7.1 "/bin/sh -c '/edgex/…" 6 days ago Exited (0) About an hour ago edgex-config-seedd9571ba3ad7d edgexfoundry/docker-edgex-mongo:0.6.0 "docker-entrypoint.s…" 6 days ago Up About an hour 0.0.0.0:27017->27017/tcp edgex-mongo8bd57e9d5699 portainer/portainer "/portainer -H unix:…" 6 days ago Exited (1) About an hour ago root_portainer_13d6a90a0645f consul:1.1.0 "docker-entrypoint.s…" 6 days ago Up About an hour 0.0.0.0:8400->8400/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 8300-8302/tcp, 8600/udp, 0.0.0.0:8600->8600/tcp edgex-core-consula8e1f475c2a9 edgexfoundry/docker-support-rulesengine:0.7.0 "/bin/sh -c 'java -j…" 6 days ago Up About an hour 0.0.0.0:48075->48075/tcp edgex-support-rulesengineb1c150571d8b edgexfoundry/docker-edgex-volume:0.6.0 "/bin/sh -c '/usr/bi…" 6 days ago Up About an hour~]# docker logs -f d9571ba3ad7d2020-06-10T12:31:50.021+0000 I ACCESS [conn19] Successfully authenticated as principal logging on logging2020-06-10T12:31:54.216+0000 I NETWORK [thread1] connection accepted from 172.18.0.4:47838 #1496 (21 connections now open)2020-06-10T12:31:54.217+0000 I - [conn1496] end connection 172.18.0.4:47838 (21 connections now open)2020-06-10T12:32:00.487+0000 I ACCESS [conn27] Successfully authenticated as principal meta on metadata2020-06-10T12:32:02.477+0000 I ACCESS [conn749] Successfully authenticated as principal core on coredata2020-06-10T12:32:04.217+0000 I NETWORK [thread1] connection accepted from 172.18.0.4:48104 #1497 (21 connections now open)2020-06-10T12:32:04.218+0000 I - [conn1497] end connection 172.18.0.4:48104 (21 connections now open)2020-06-10T12:32:05.018+0000 I ACCESS [conn31] Successfully authenticated as principal logging on logging2020-06-10T12:32:14.218+0000 I NETWORK [thread1] connection accepted from 172.18.0.4:48346 #1498 (21 connections now open)2020-06-10T12:32:14.219+0000 I - [conn1498] end connection 172.18.0.4:48346 (21 connections now open)2020-06-10T12:32:15.502+0000 I ACCESS [conn27] Successfully authenticated as principal meta on metadata2020-06-10T12:32:17.476+0000 I ACCESS [conn30] Successfully authenticated as principal core on coredata2020-06-10T12:32:20.019+0000 I ACCESS [conn66] Successfully authenticated as principal logging on logging2020-06-10T12:32:24.220+0000 I NETWORK [thread1] connection accepted from 172.18.0.4:48614 #1499 (21 connections now open) |
或者使用docker-compose
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
~]# docker-compose ps Name Command State Ports ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------edgex-config-seed /bin/sh -c /edgex/cmd/conf ... Exit 0 edgex-core-command /core-command --consul --p ... Up 0.0.0.0:48082->48082/tcp edgex-core-consul docker-entrypoint.sh agent ... Up 8300/tcp, 8301/tcp, 8301/udp, 8302/tcp, 8302/udp, 0.0.0.0:8400->8400/tcp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/tcp, 8600/udpedgex-core-data /core-data --consul --prof ... Up 0.0.0.0:48080->48080/tcp, 0.0.0.0:5563->5563/tcp edgex-core-metadata /core-metadata --consul -- ... Up 0.0.0.0:48081->48081/tcp, 48082/tcp edgex-device-virtual /bin/sh -c java -jar -Djav ... Up 0.0.0.0:49990->49990/tcp edgex-export-client /export-client --consul -- ... Up 0.0.0.0:48071->48071/tcp edgex-export-distro /export-distro --consul -- ... Up 0.0.0.0:48070->48070/tcp, 0.0.0.0:5566->5566/tcp edgex-files /bin/sh -c /usr/bin/tail - ... Up edgex-mongo docker-entrypoint.sh /bin/ ... Up 0.0.0.0:27017->27017/tcp edgex-support-logging /support-logging --consul ... Up 0.0.0.0:48061->48061/tcp edgex-support-notifications /support-notifications --c ... Up 0.0.0.0:48060->48060/tcp edgex-support-rulesengine /bin/sh -c java -jar -Djav ... Up 0.0.0.0:48075->48075/tcp edgex-support-scheduler /support-scheduler --consu ... Up 0.0.0.0:48085->48085/tcp root_portainer_1 /portainer -H unix:///var/ ... Exit 1 |
~]# docker-compose logs -f mongo edgex-mongo | 2020-06-10T08:48:32.516+0000 I - [conn152] end connection 172.18.0.4:35464 (17 connections now open) edgex-mongo | 2020-06-10T08:48:39.969+0000 I ACCESS [conn31] Successfully authenticated as principal logging on logging edgex-mongo | 2020-06-10T08:48:42.516+0000 I NETWORK [thread1] connection accepted from 172.18.0.4:35692 #153 (17 connections now open) edgex-mongo | 2020-06-10T08:48:42.517+0000 I - [conn153] end connection 172.18.0.4:35692 (17 connections now open) edgex-mongo | 2020-06-10T08:48:45.495+0000 I ACCESS [conn29] Successfully authenticated as principal core on coredata edgex-mongo | 2020-06-10T08:48:45.517+0000 I ACCESS [conn23] Successfully authenticated as principal meta on metadata edgex-mongo | 2020-06-10T08:48:47.483+0000 I ACCESS [conn29] Successfully authenticated as principal core on coredata edgex-mongo | 2020-06-10T08:48:52.517+0000 I NETWORK [thread1] connection accepted from 172.18.0.4:35962 #154 (17 connections now open) edgex-mongo | 2020-06-10T08:48:52.518+0000 I - [conn154] end connection 172.18.0.4:35962 (17 connections now open) edgex-mongo | 2020-06-10T08:49:00.468+0000 I ACCESS [conn66] Successfully authenticated as principal logging on logging edgex-mongo | 2020-06-10T08:49:00.503+0000 I ACCESS [conn23] Successfully authenticated as principal meta on metadata edgex-mongo | 2020-06-10T08:49:02.486+0000 I ACCESS [conn30] Successfully authenticated as principal core on coredata


浙公网安备 33010602011771号