一、主要内容

        本文主要讲如何在上位机搭建Eclipse Ditto用于调试和开发,注意不是运行环境搭建,和运行环境是有区别的。

        Eclipse Ditto 是物联网数字孪生中台,推荐 Docker Compose 一键部署(官方标准方案,内置 MongoDB、网关、Nginx 鉴权),不推荐原生二进制编译;

二、安装docker

sudo apt update
# 安装依赖
sudo apt install ca-certificates curl gnupg lsb-release -y
# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
# 将当前用户加入docker组,免sudo
sudo usermod -aG docker $USER
# 生效权限(新开终端或执行)
newgrp docker
# 验证
docker -v
docker compose version

三、一键部署Eclipse Ditto

(1)拉取 Ditto 官方部署文件

# 克隆官方仓库
git clone https://github.com/eclipse-ditto/ditto.git
cd ditto/deployment/docker

(2)配置国内镜像原:

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://dockerproxy.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}
EOF
# 重载配置+重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker

(3)服务后台常驻

# 拉取镜像并启动
docker compose up -d
# 查看启动日志,等待所有服务就绪(约30~60s)
docker compose logs -f

docker compose up -d命令:
在后台模式启动 docker-compose.yml 文件中定义的所有服务容器。

启动后自动运行组件:

  • MongoDB:持久化存储数字孪生 Thing 模型
  • Ditto 核心微服务:Things、Policies、Connectivity、Gateway
  • Nginx 反向代理:提供 Basic 鉴权、8080 端口网关

(4)验证 Ditto 服务

默认账号密码:ditto / ditto

# HTTP接口测试,返回空数组代表正常
curl -u ditto:ditto http://localhost:8080/api/2/things
# 访问管理后台
http://localhost:8080/ui

(5)运维常用命令

# 停止服务
docker compose down
# 重启
docker compose restart
# 清空数据(测试环境重置)
docker compose down -v
#查看端口对应关系
docker compose ps 

(6)安装成功图片

四、附录

参考配置:我的网络访问有问题,最后配置了sudo vim /etc/systemd/resolved.conf文件;增加内容如下:

[Resolve]
DNS=114.114.114.114 8.8.8.8
FallbackDNS=223.5.5.5
DNSSEC=no

新增内容后执行命令:

sudo systemctl restart systemd-resolved
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

更多推荐