【Docker】Docker使用之容器技术发展史
🎬 博客主页:博主链接
🎥 本文由 M malloc 原创,首发于 CSDN🙉
🎄 学习专栏推荐:LeetCode刷题集
🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📆 未来很长,值得我们全力奔赴更美好的生活✨


文章目录
- 😇本章详情
- 😇Jail时代
- 😇1979 年 贝尔实验室发明 chroot
- 😇2000 年 FreeBSD 4.0 发行 FreeBSD Jail
- 😇2001 年 Linux VServer 发行
- 😇2004 年 Solaris Containers 发行
- 😇云时代
- 😇2006 年 google 推出 Process Containers
- 😇2008 年 LXC 推出
- 😇2011 年 CloudFoundry 推出 Warden
- 😇2013 年 LMCTFY 启动
- 😇2013 年 Docker 推出到风靡全球
- 😇云原生时代
- 😇Google &Docker 竞争
- 😇2013 年 CoreOS 发布和 Docker 由合作终止
- 😇2014 年 6 月 Google 发布开源的容器编排引擎 Kubernetes(K8S)
- 🤣本文小结
😇本章详情
🐤本篇文章将讲述Docker容器的技术发展史
😇Jail时代
😁容器不是一个新概念或者新技术,很早就有了,只是近几年遇到了云计算,整个技术被彻底引爆了。
😇1979 年 贝尔实验室发明 chroot
📑chroot 系统调用是在 1979 年开发第 7 版 Unix 期间引入的。贝尔实验室在 Unix V7 的开发过程中,发现当一个系统软件编译和安装完成后,整个测试环境的变量就会发生改变,下一次测试需要重新配置环境信息。
设计者们思考能否隔离出来一个独立的环境,来构建和搭建测试环境,所以发明了
chroot,可以把一个进程的文件系统隔离起来
chroot 系统调用可以将进程及其子进程的根目录更改为文件系统中的新位置。隔离以
后,该进程无法访问到外面的文件,因此这个被隔离出来的新环境像监狱一样,被命
名为 Chroot Jail (监狱)。后续测试只需要把测试信息放到 Jail 中就可以完成测试了。
这一进步是进程隔离的开始:为每个进程隔离文件访问。所以 chroot 可以认为是容器
技术的鼻祖。
😇2000 年 FreeBSD 4.0 发行 FreeBSD Jail
前言
2000 年,当时一家小型共享环境托管提供商提出了 FreeBSD Jail,以实现其服务与其客户服务之间的明确分离,以实现安全性和易于管理。每个 Jail 都是一个在主机上运行的虚拟环境,有自己的文件、进程、用户和超级用户帐户,能够为每个系统分配一个IP 地址。
FreeBSD Jail 不仅仅有 chroot 的文件系统隔离,并且扩充了独立的
进程和网络空间。
😇2001 年 Linux VServer 发行
💐与 FreeBSD Jails 一样,Linux VServer 是一种监狱机制,可以对计算机系统上的资源
(文件系统、网络地址、内存)进行分区。
😇2004 年 Solaris Containers 发行
2004 年, Solaris Containers 的第一个公开测试版发布,结合系统资源控制和区域进
行隔离,并添加了快照和克隆能力。
这个时期的进程隔离技术大多以 Jail 模式为核心,基本实现了进程相关资源的隔离操作,没有更大的应用场景发展有限。
😇云时代
2006 年,
Google 101 计划提出云的概念,对当前的主流开发模式产生深远的影响。也许以后我们会更多考虑如果出现比现在多 1000 倍, 10000 倍的数据量的时候,我们该如何处理?要想让”云”发挥潜能,与此相关的编程和操作就应该与使用互联网一样简单。随后,亚马逊、IBM 等行业巨头也陆续宣布各自的“云”计划,宣告“云”技术时代的来临。
云计算需要处理海量数据、超高并发、快速扩展等问题,此时不仅仅需要隔离还需要能够对资源进行控制和调配。
😇2006 年 google 推出 Process Containers
提示
Process Containers(由 Google 于 2006 年推出)旨在限制、统计和隔离一组进程的
资源使用(CPU、内存、磁盘 I/O、网络)。一年后它更名为“Control Groups (cgroups)”,并最终合并到 Linux 内核 2.6.24
😇2008 年 LXC 推出
LXC(Linux 容器)是 Linux 容器管理器的第一个、最完整的实现。它是在 2008 年使
用cgroups和Linux 命名空间实现的,它可以在单个 Linux 内核上运行,不需要任何
补丁。
同年谷歌推出 GAE(Google App Engine),首次把开发平台当做一种服务来提供,采
用云计算技术,跨越多个服务器和数据中心来虚拟化应用程序。
同时 Google 在 GAE 中使用了 Borg (Kubernetes 的前身)来对容器进行编排和调度。
LXC 和 Borg 其实就相当于最早的 docker 和 k8s.
😇2011 年 CloudFoundry 推出 Warden
⭐2011 年启动了 Warden,早期使用 LXC,后来替换为自己的实现,直接对 Cgroups 以及 Linux Namespace 操作。开发了一个
客户端-服务器模型来管理跨多个主机的容器
集合,并且可以管理 cgroups、命名空间和进程生命周期。
😇2013 年 LMCTFY 启动
概要
🌕Let Me Contain That For You (LMCTFY) 于 2013 年作为 Google 容器堆栈的开源版本启动,提供 Linux 应用程序容器。应用程序可以“容器感知”,创建和管理它们自己的
子容器。在谷歌开始和 docker 合作,后续转向了 docker 公司的 libcontainer,LMCTFY 的于 2015 年停止。
😇2013 年 Docker 推出到风靡全球
Docker 最初是一个叫做 dotCloud 的 PaaS 服务公司的内部项目,后来该公司改名为Docker。Docker 在初期与 Warden 类似,使用的也是 LXC,之后才开始采用自己开发的 libcontainer 来替代 LXC,它是将应用程序及其依赖打包到几乎可以在任何服务器上运行的容器的工具。与其他只做容器的项目不同的是,Docker 引入了一整套管理容器的生态系统,这包括高效、分层的容器镜像模型、全局和本地的容器注册库、清晰的 REST API、命令行等等。
Docker 最初是一个叫做 dotCloud 的 PaaS 服务公司的内部项目,后来该公司改名为 Docker。Docker 在初期与 Warden 类似,使用的也是 LXC,之后才开始采用自己开发 的 libcontainer 来替代 LXC,它是将应用程序及其依赖打包到几乎可以在任何服务器 上运行的容器的工具。与其他只做容器的项目不同的是,Docker 引入了一整套管理容 器的生态系统,这包括高效、分层的容器镜像模型、全局和本地的容器注册库、清晰 的 REST API、命令行等等。
😇云原生时代
😇Google &Docker 竞争
😇2013 年 CoreOS 发布和 Docker 由合作终止
🌞技术革命带来新的市场机遇,CoreOS 也是其中的一员,在容器生态圈中贴有标签:专为容器设计的操作系统 CoreOS。作为互CoreOS+Docker 曾经也是容器部署的灵魂伴侣。CoreOS 为 Docker 的推广和源码社区都做出了巨大的贡献。
Docker 生态扩张,与最开始是“一个简单的基础单元”不同,Docker 也在通过开发或收购逐步完善容器云平台的各种组件,准备打造自己的生态圈,而这与 CoreOS 的布局有直接竞争关系。
😇2014 年 6 月 Google 发布开源的容器编排引擎 Kubernetes(K8S)
容器只是解决了容器化,分发问题,但是一个软件的
网络问题、负载均衡问题、监控、部署、更新、镜像管理、发布等很多问题并没有有效的解决。
Google 内部调度系统 Borg 已经拥有 10 多年的使用容器经验,在 2014 年 6 月推出了
开源的 K8S,可以支持对容器的编排和管理,完成生态的闭环。
同年 7 月,微软、Red Hat、IBM、Docker、CoreOS、 Mesosphere 和 Saltstack 等公司,相继加入 K8S。之后的一年内,VMware、HP、Intel 等公司,也陆续加入。
🤣本文小结
好啦今日的分享到这里就结束啦,我是爱你们的M malloc希望可以帮助到你们噢,最后别忘记三连啦!!

相关文章:
【Docker】Docker使用之容器技术发展史
🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正࿰…...
postgresql的在windows下的安装
postgresql的在windows下的安装 下载安装步骤超级用户设置密码本地化设置安装信息安装完成 查看postgresql服务pgAdmin的使用打开命令 行工具查询数据库版本 创建数据库 下载 官网地址 https://www.postgresql.org/ 下载页面 https://www.postgresql.org/download/ windows下…...
python 自动化学习(四) pyppeteer 浏览器操作自动化
背景 之前我在工作中涉及到了很多地方都是重复性的页面点点点工作,又因为安全保密原则不开放接口和数据库,只有一个页面来提供点击进行操作,就想着用前面学的自动化来实现,但发现前面学的模拟操作对浏览器来说并没有那么友好&…...
P1009 阶乘之和
[NOIP1998 普及组] 阶乘之和 题目描述 用高精度计算出 S 1 ! 2 ! 3 ! ⋯ n ! S 1! 2! 3! \cdots n! S1!2!3!⋯n!( n ≤ 50 n \le 50 n≤50)。 其中 ! 表示阶乘,定义为 n ! n ( n − 1 ) ( n − 2 ) ⋯ 1 n!n\times (n-1)…...
Linux内核源码剖析之TCP保活机制(KeepAlive)
写在前面: 版本信息: Linux内核2.6.24(大部分centos、ubuntu应该都在3.1。但是2.6的版本比较稳定,后续版本本质变化也不是很大) ipv4 协议 https://blog.csdn.net/ComplexMaze/article/details/124201088 本文使用案例…...
后端 springboot 给 vue 提供参数
前端 /** 发起新增或修改的请求 */requestAddOrEdit(formData) {debuggerif(formData.id undefined) {formData.id }getAction(/material/getNameModelStandard, {standard: this.model.standard,name: this.model.name,model: this.model.model}).then((res) > {if (res …...
《vue3实战》运用radio单选按钮或Checkbox复选框实现单选多选的试卷制作
文章目录 目录 系列文章目录 1.《Vue3实战》使用axios获取文件数据以及走马灯Element plus的运用 2.《Vue3实战》用路由实现跳转登录、退出登录以及路由全局守护 3.《vue3实战》运用Checkbox复选框实现单选多选的试卷展现(本文) 文章目录 前言 radio是什…...
排序算法-冒泡排序(C语言实现)
简介😀 冒泡排序是一种简单但效率较低的排序算法。它重复地扫描待排序元素列表,比较相邻的两个元素,并将顺序错误的元素交换位置,直到整个列表排序完成。 实现🧐 以下内容为本人原创,经过自己整理得出&am…...
星际争霸之小霸王之小蜜蜂(一)
目录 前言 一、安装pygame库 1、pygame库简介 2、在windows系统安装pygame库 二 、搭建游戏框架 1、创建游戏窗口 2、改变窗口颜色 总结 前言 大家应该都看过或者都听说过python神书“大蟒蛇”,上面有一个案例是《外星人入侵》,游戏介绍让我想起了上…...
图数据库_Neo4j基于docker服务版安装_Neo4j Desktop桌面版安装---Neo4j图数据库工作笔记0004
然后我们来看看如何用docker来安装Neo4j community server 首先去执行docker pull neo4j:3.5.22-community 去拉取镜像 然后执行命令就可以安装了 可以用docker ps查看一下 看看暴露了哪些端口 然后再看一下访问一下这个时候,要用IP地址了注意 然后再来看一下安装Desktop 去下…...
docker-compose部署可道云
文章目录 一. Mac1.1 下载源码1.2 部署1.2.1 修改密码部署(可忽略)1.2.2 直接部署 1.3 卸载1.4 访问 二. Win2.1 下载源码2.2 部署2.2.1 修改密码部署(可忽略)2.2.2 直接部署 2.3 卸载 一. Mac 1.1 下载源码 mkdir -p /Users/wanfei/docker-compose && cd /Users/wan…...
Windows上使用FFmpeg实现本地视频推送模拟海康协议rtsp视频流
场景 Nginx搭建RTMP服务器FFmpeg实现海康威视摄像头预览: Nginx搭建RTMP服务器FFmpeg实现海康威视摄像头预览_nginx rtmp 海康摄像头_霸道流氓气质的博客-CSDN博客 上面记录的是使用FFmpeg拉取海康协议摄像头的rtsp流并推流到流媒体服务器。 如果在其它业务场景…...
单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.8 运算符
1.算术运算符 运算符名称备注加法运算符双目运算,a b-减法运算符双目运算,a - b*乘法运算符双目运算,a * b/除法运算符双目运算,a / b%求余运算符双目运算, a % b自增运算符单目运算, a–自减运算符单目运算, a– 2.关系运算符…...
轮腿机器人的PID控制
1 PID介绍 PID(Proportional Integral Derivative)控制系统。其实质是根据输入的偏差值,按比例、积分、微分的函数关系进行运算,运算结果用以输出进行控制。它是在长期的工程实践中总结出来的一套控制方法,实际运行经…...
ChatGPT爆火,会给教育带来什么样的影响或者冲击?
近来,人工智能聊天机器人ChatGPT连上热搜,火爆全网。ChatGPT拥有强大的信息整合能力、自然语言处理能力,可谓是“上知天文,下知地理”,而且还能根据要求进行聊天、撰写文章等。 ChatGPT一经推出,便迅速在社…...
Servlet+JDBC实战开发书店项目讲解第三篇:商品查询实现
ServletJDBC实战开发书店项目讲解第三篇:商品查询实现 本篇博客将介绍如何在ServletJDBC实战开发书店项目中实现商品查询功能。我们将从设计数据库表结构和实体类开始,一步一步详细讲解代码实现过程,包括前端页面的设计和后端Servlet代码的编…...
爬虫逆向实战(十七)--某某丁简历登录
一、数据接口分析 主页地址:某某丁简历 1、抓包 通过抓包可以发现数据接口是submit 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现有一个enPassword加密参数 请求头是否加密? 通过查看请求头可以发现有一个To…...
《安富莱嵌入式周报》第320期:键盘敲击声解码, 军工级boot设计,开源CNC运动控制器,C语言设计笔记,开源GPS车辆跟踪器,一键生成RTOS任务链表
周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: https://www.bilibili.com/video/BV1Cr4y1d7Mp/ 《安富莱嵌入式周报》第320期:键盘敲击…...
DRF 缓存
应用环境 django4.2.3 ,python3.10 由于对于服务而言,有些数据查询起来比较费时,所以,对于有些数据,我们需要将其缓存。 最近做了一个服务,用的时 DRF 的架构,刚好涉及缓存,特此记…...
Collada .dae文件格式简明教程【3D】
当你从互联网下载 3D 模型时,可能会在格式列表中看到 .dae 格式。 它是什么? 推荐:用 NSDT编辑器 快速搭建可编程3D场景。 1、Collada DAE概述 COLLADA是COLLAborative Design Activity(中文:协作设计活动)…...
告别文献混乱!用Zotero+OneDrive打造你的跨设备论文库(附ZotFile插件配置)
告别文献混乱!用ZoteroOneDrive打造你的跨设备论文库 实验室电脑里躺着三百篇未分类的PDF,笔记本桌面堆满"新建文件夹(1)",平板上还存着上周下载但找不到的会议论文——这可能是每个科研人的数字噩梦。当文献管理变成一场与自己的捉…...
工业以太网IO模块级联技术:从Modbus TCP到MQTT的部署实践
1. 项目概述:为什么我们需要“可级联”的工业IO模块?在工业自动化现场摸爬滚打十几年,最头疼的事情之一就是布线。一个车间里,PLC、传感器、执行器、仪表星罗棋布,传统的IO模块要么通过现场总线(如Profibus…...
MIPI CSI-2(3) 逃逸/LP模式 传输详解和波形图
专栏目录 MIPI CSI-2(1) D-PHY详细解析 MIPI CSI-2(2) HS模式 传输详解和波形图 MIPI CSI-2(3) 逃逸/LP模式 传输详解和波形图 逃逸模式时序 逃逸模式下lane始终通过LP-TX驱动,不要求有时钟&…...
别再只问ChatGPT答案了!试试这个Prompt技巧,让大模型把解题思路‘说’给你听
解锁大模型思维密码:用Prompt技巧让AI展示完整推理路径 当你向ChatGPT抛出一个复杂问题时,是否曾对那个突然出现的最终答案感到困惑?就像看到魔术师从空帽子中变出兔子,却不知道机关在哪里。现代大型语言模型确实能给出惊人准确的…...
别再被假密码骗了!手把手教你用010 Editor识别并破解ZIP/RAR伪加密压缩包
010 Editor实战:揭秘ZIP/RAR伪加密压缩包的技术真相 当你从某个CTF比赛下载到一个加密压缩包,输入密码却提示错误时,是否想过这可能是个精心设计的陷阱?网络安全领域存在一种特殊的"伪加密"技术,它让压缩包看…...
Linux 绝对路径与相对路径详解——新手再也不迷路
前言在Linux中,无论是查看文件、修改配置,还是切换目录,都离不开“路径”——路径就像是文件和目录的“地址”,指引我们在庞大的文件系统中找到目标。对于新手来说,最容易混淆的就是“绝对路径”和“相对路径”&#x…...
同步、异步与互斥:从通用OS到RTOS的全面解析
一、基础概念:进程与线程1.1 什么是进程?进程是操作系统进行资源分配和调度的基本单位,是一个正在运行的程序实例。1.2 什么是线程?线程是操作系统进行CPU调度的基本单位,是进程内部的一条执行路径(轻量级进…...
方法区内存回收机制与核心引用链深度剖析
在 Java 虚拟机(JVM)的内存管理体系中,方法区(JDK 1.8 及以后具体实现为元空间 Metaspace)的垃圾回收主要聚焦于两部分:废弃的常量池清理以及无用类的卸载(Class Unloading)。由于类…...
从开发板到工业边缘计算平台:UP Board二代的硬件解析与应用实战
1. 项目概述:从“开发板”到“边缘计算平台”的认知跃迁最近在整理手头的嵌入式设备,翻出了这块研扬的UP Board二代。说实话,第一次拿到它的时候,我下意识地还是把它归类为“一块性能不错的x86开发板”,就像树莓派之于…...
2026 年 30 个 MCP Server 实测评:Claude Code 集成效果与响应延迟对比数据
1. 30个MCP Server实测评背后的真实问题:Claude Code不是“插上就快”,而是“配错就崩” 我上线第三个内部MCP Server时,CI流水线里一个原本2秒完成的代码补全请求,突然卡在waiting for MCP response状态长达17秒。日志里没有报错,只有反复重试的HTTP 504。排查了两天,最…...
