容器是敏捷软件开发的中心 。 他们已经从边缘的开源技术转向为现代软件和嵌入式Linux系统提供动力的构建块 。 随着物联网(IoT)的出现 , 该领域的先锋公司现在正在寻找容器 , 以将DevOps的优势扩展到嵌入式开发系统的独特需求 。 随着企业希望扩大其物联网环境的能力 , 流行的容器技术如LXC或Linux容器和Docker位居榜首 。
容器简史
容器作为虚拟机(VMs)的轻量级替代品得到普及 。 虚拟机是虚拟化硬件服务器 , 允许用户在现有主机操作系统上安装和运行来宾操作系统(OS) 。 这意味着在任何操作系统环境中开发的应用程序都可以在任何系统上运行 。
但是 , 虚拟机具有很高的开销、维护成本和较大的映像大小 , 这可能会将资源过度分配给运行在虚拟机上的操作系统的每个实例 。 另一方面 , 容器是虚拟化的软件环境 , 它将应用程序的代码及其依赖项打包 , 以便应用程序可以在任何主机上单独并行运行 , 并根据需要分配资源 。
LXC和LXD–操作系统的容器化
容器技术于2001年通过JacquesGélinas的LinuxVServer项目首次引入 。 这种早期形式的容器技术经历了几次重新设计 , 例如添加了cgroup功能 , 允许在不需要启动任何虚拟机的情况下限制和优先排序资源(CPU、内存、块I/O、网络);以及名称空间隔离功能 , 该功能允许完全隔离应用程序对操作环境的视图 , 包括进程树、网络、用户ID和装载的文件系统和名称空间 。
2008年 , IBM工程师添加了一层用户空间工具 , 以使嵌入式开发人员更喜欢该技术 。
2014年 , LXC1.0版本通过利用现有的Linux技术(如seccomp和SELinux)进一步解决了LXC的安全问题 , 以控制和防止恶意代码从容器中溢出造成的DoS攻击 。
LXC容器的工作原理是采用操作系统级虚拟化 , 允许多个Linux虚拟环境在共享硬件和基于Linux的操作系统内核上同时运行 。 这节省了开销成本 , 并允许构建应用程序以跨多种设备类型使用 。 本质上 , LXC专注于系统和操作系统级的容器化 , 而这正是它们擅长的地方 。
LXD–LXC容器的升级
LXD被描述为下一代系统容器 。 它通过可以连接到LXC库的RESTAPI增强了系统级的容器化 。 它用Go编写 , 创建了一个系统守护进程 , 应用程序通过HTTPS通过UNIX套接字访问 , 进一步扩展了分布式系统可移植性的可能性 。 LXD构建在LXC之上 , 并通过内核扩展其功能 , 而不是独立于操作系统 。 它的行为非常类似于带有虚拟机监控程序的VM , 但没有资源开销 。
Docker–集装箱化应用程序
虽然Linux容器主要在系统级 , 但Docker的重点是应用程序容器化 。 Docker于2013年推出 , 最初基于LXC , 并添加了用户友好的工具 , 以吸引嵌入式开发人员寻找大型虚拟机的替代品 。 最终 , Docker通过开发自己的集装箱化架构与LXC有所不同 。
Docker和LXC共享类似的安全和进程隔离功能 , 确保运行的进程不会过度利用资源 。 然而 , 它们实际上是非常不同的技术——每个Docker容器运行单个虚拟化应用程序引擎 , 而LXC容器化系统或Linux操作系统用户区的不同组件 。
【docker|嵌入式开发:Linux容器与Docker的发展历史】Docker容器打包单个应用程序或应用程序组件 , 而不是客户操作系统 , 它有一个直接在主机操作系统上运行的Docker守护程序 。 此外 , 在嵌入式开发中 , 每个容器化应用程序都是独立运行的 , 不会影响主机中同时运行的任何其他应用程序 。
- iOS15.4|iOS 15.4开发版推送:新功能堪称史诗级更新
- IPO|升级数字生态系统 奥迪开发者平台开通
- 不正当竞争|嵌入式开发:C 开发人员应遵循的 3 个显式编程技巧
- ATownshipTale|「A Township Tale」开发商Alta完成1240万美元种子轮融资
- 市场开发部|奥运史上首个“云展厅”上线两天访问人次超12万
- 算法|36氪首发|「霍里思特」获1亿元人民币A轮融资,基于X射线+AI算法开发的智能选矿机已落地国内龙头企业
- 神经|国外科学家创造“超网络”,用于开发人工智能的“人工智能”
- 中国作协|新华社和中国作协启动“5G新阅读”创作开发计划
- 派对|传字节跳动正开发元宇宙社交App“派对岛”,回应:与元宇宙无关
- fMeta 为开发中地区提供的“免费”互联网服务被发现持续向用户收费