在嵌入式世界中,嵌入式开发人员与云开发人员在不同的需求和约束下工作。大多数嵌入式设备都是固定功能的、单用途的设计,用于很好地执行一件事情,并且经常针对特定功能进行定制。由于这种高度的定制,Linux发行版本身专门包含帮助应用程序在设备上执行其功能所必需的模块和软件包。
Docker受到云开发者的欢迎有几个原因。他们可以轻松地从Docker Hub的广泛生态系统中托管和下载单个应用程序。除此之外,Docker还使CICD管道的构建和管理变得极其简单、高效和便携。另一方面,LXD主要用于操作Linux并需要轻量级系统级虚拟化的发布团队。
由于Linux容器更适合系统级的容器化,因此它们非常适合需要便携式和专用操作系统的设备。
Linux容器与Docker的比较
1. 虚拟化
Linux容器:LXC提供了完整的系统虚拟化。
Docker:Docker只提供应用程序虚拟化。
2. 操作系统支持
Linux容器:提供支持Linux系统核心功能的基本系统环境。
Docker:在Linux上本机运行,但也支持其他操作系统,如Windows和macOS。Docker本机使用其运行的操作系统。
3. 生态系统和工具
Linux容器:使用系统管理员熟悉的裸机工具和Linux开源工具进行操作。
Linux容器尽可能接近Linux,嵌入式开发人员可以使用任何其他Linux支持的工具进行操作。Docker Hub是一个公共映像存储库,提供对流行应用程序的访问。
Docker:Docker由自己的定制工具管理,该工具由主要与Kubernetes合作的大型云本地开源项目社区支持。
4. 易用性
Linux容器:因为它是一个纯Linux操作系统,所以更容易将应用程序从一个Linux系统迁移到另一个Linux系统。问题更多地在于管理发行版本身,保持内核、模块和库在不同发行版之间的兼容性。
Docker:Docker拥有强大的生态系统和庞大的用户社区,拥有广泛的追随者。开始使用和在需要的任何地方部署应用程序都很简单。
物联网项目中Docker和Linux容器的主要优势
Linux容器的另一个好处是,大多数物联网发布团队都熟悉Linux。Linux是高度可定制的。Linux容器可以帮助控制对操作系统的任何定制,并使其可移植到网络中的所有嵌入式设备。这使得组织更容易为其物联网项目支持DevOps工作流和其他最佳实践。
在物联网环境中,几乎所有设备都在Linux上运行。像LXC这样更轻量级的容器允许对操作系统进行更高效的更新。然而,对于嵌入式开发人员来说,同样有益的是能够轻松创建容器化CICD管道,以便向Linux设备提供应用程序和操作系统更新。
原文链接:https://www.toutiao.com/a7045605177717621259/