JelinaOS 内置完整的容器运行时(Docker),但容器应用的部署遵循统一原则:通过发布(Release)体系管理,而不是直接在设备上手工运行容器。生产环境的容器应用,建议全部走发布流程——定义、部署、守护、更新、回滚,全链路可控。
部署流程(推荐)
Section titled “部署流程(推荐)”构建并推送镜像 → 在发布中声明容器应用 → 部署到设备 → 设备代理拉取并运行第一步:准备镜像
Section titled “第一步:准备镜像”将应用构建为容器镜像,并推送到镜像仓库(企业私有仓库或公共仓库):
docker build -t registry.example.com/myapp:1.0.0 .docker push registry.example.com/myapp:1.0.0第二步:在发布中声明
Section titled “第二步:在发布中声明”在 JelinaCloud 创建发布,添加容器应用:
- 指定镜像地址与版本标签(建议使用明确的版本,避免意外升级);
- 配置环境变量、端口映射、数据卷;
- 设置重启策略(推荐
always)与资源限制。
第三步:部署
Section titled “第三步:部署”将发布部署到目标舰队或设备,设备代理自动完成:
- 拉取镜像并创建容器;
- 按配置注入环境变量、映射端口、挂载数据卷;
- 启动容器并持续守护(异常自动重启、设备重启自动恢复)。
容器文件系统在容器重建后会丢失,需要持久化的数据请挂载到数据分区:
- 在发布中为应用声明数据卷,或挂载设备数据分区目录;
- 数据独立于容器生命周期,升级、重建不影响。
设备上的 Docker 命令用于查看与诊断,不用于部署管理:
docker ps # 查看容器运行状态docker logs <容器名> # 查看容器日志docker events # 跟踪容器事件(诊断用)生产实践要点
Section titled “生产实践要点”- 固定版本:发布中使用明确的镜像版本标签;
- 健康检查:为服务配置健康检查,配合重启策略实现自动恢复;
- 资源限制:为容器设置内存与 CPU 上限,避免影响设备整体;
- 私有仓库:企业环境使用私有镜像仓库,镜像分发由设备代理统一完成;
- 升级与回滚:通过发布新版本实现升级,通过重新指定原版本实现回滚——均由云端编排。
可以直接在设备上 docker run 部署应用吗? 技术上可行,但不推荐:直接运行的应用不在发布体系中,无法获得统一的守护、更新与回滚能力。生产环境请通过发布部署。
容器异常退出会怎样?
发布中配置了 restart: always 的应用,异常退出后由设备代理自动重启。
- 应用管理 — 发布体系总览
- 容器编排(Compose) — 多容器应用的组合编排
- 云端应用部署与 OTA — 发布与更新流程