Docker的诞生背景与设计初衷,以及发展前景

这篇具有很好参考价值的文章主要介绍了Docker的诞生背景与设计初衷,以及发展前景。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🧨🧨🧨

docker 在何种背景下诞生,

为什么好多人都在使用docker作为服务部署的实现方式,

docker未来有什么样的前景,以及为什么要学习并使用docker呢

🎗️🎗️🎗️

一、设计初衷

1、拜访长老 

多年以前,在一个风雨交加的夜晚,一个叫做docker的年轻人,来到Linux帝国,拜会帝国的长老

他对长老说:“天下程序员苦于应用部署环境久矣,我想要改变这一现状,希望长老您能帮帮我。”

长老回答:“小小年纪,口气不小。你有何所求,坐下来慢慢说,我愿闻其详。”

docker坐下后说道:“当今天下,开发、测试、部署,种种库的依赖纷繁复杂,版本之间的差别,再加上测试环境与部署环境不一致,程序员们饱受其苦,是时候改变这一状态了。”

docker继续说道:“我想做一个虚构的容器,让程序运转此中,将它们需要的库打包,以便在不同的机器移植后,仍可以提供一致的运行情况,彻底解开程序员们身上的束缚。”

Linux长老听闻后,轻轻点头:“嗯,年轻人主意倒是不错,不过,听你所说,貌似虚拟机就能解决这个需求。”

Docker的诞生背景与设计初衷,以及发展前景,Docker从零到精通:实战指南,docker,容器,linux,运维,k8s,云原生

 docker连忙摇头说道:“长老所说不错,虚拟机的确能够解决这个问题,但虚拟机体积大,且笨重如牛,起步就是以G为单位,因为虚拟机要运行一个完整的操作系统,所以格外的占用资源,一台机器上还没等跑程序,光跑了几台虚拟机就已经把性能拖垮了,我想要做一个轻量级的虚拟容器,只提供一个运行环境,不需要运行一个操作系统,所有容器中的内核还是和外面的宿主机共用的,这样就可以批量复制多个容器,轻便又快捷。”

Linux长老站了起来,在房间内来回踱步,思考半晌后,突然高兴说道:“不错,真是个好主意,这个项目我投了。”

docker一听,喜上眉梢,“要实现我说的目标,可不是一件简单的事情,还望长老助我一臂之力。”

Docker的诞生背景与设计初衷,以及发展前景,Docker从零到精通:实战指南,docker,容器,linux,运维,k8s,云原生

“你稍等”,Linux长老转身回到内屋,不一会走了出来,手上还拿了一些东西。

“年轻人,回去以后,放手去干吧,我赐你三个锦囊,若遇到问题,可依次拆开,必有大用。”

2、研发之路

docker高兴的收下了锦囊,拜别Linux长老,消失在了夜色中

自此,docker回到家后,开始了他的虚拟容器的开发之路,日后响彻大江南北的docker容器,正式扬帆起航。🚩🚩🚩

然而,想要做成一件事,向来都不是容易的, 很快,docker就遇到了他的第一个问题

2-1、 chroot & pivot_root

作为一个容器,首要任务就是限制容器中进程的活动范围——能访问的文件系统目录。决不能让容器中的进程去肆意访问真实的系统目录,得将他们的活动范围划定到一个指定的区域,不得越雷池半步!

那么该如何限制这些进程的活动区域呢?

苦思良久后,Docker拆开了Linux长老送给他的第一个锦囊,上面写着两个函数的名字:chroot & pivot_root

docker从未使用过这两个函数,于是在Linux帝国四处打听它们的作用。后来得知,通过这两个函数,可以修改进程和系统的根目录到一个新的位置。


docker大喜,长老真是诚不欺我!


有了这两个函数,docker开始想办法怎么来“伪造”一个文件系统来欺骗容器中的进程。

[root@master1 ~]# cd /
[root@master1 /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

为了不露出破绽,docker很聪明用操作系统镜像文件挂载到容器进程的根目录下,变成容器的rootfs和真实系统目录一模一样,足可以以假乱真。

2-2、 namespace

🧨🧨🧨文件系统的问题终于解决了

但docker不敢懈怠,因为在他的心里,还有另一个大问题一直困扰着他

那就是如何把真实系统所在的世界隐藏起来,别让容器中的进程看到。

比如进程列表、网络设备、用户列表这些,是决不能让容器中的进程知道的得让他们看到的世界是一个干净如新的系统。

docker心里清楚,自己虽然叫容器,但这只是表面现象,容器内的进程其实和自己一样,都是运行在宿主操作系统上面的一个个进程,想要遮住这些进程的眼睛,瞒天过海,实在不是什么容易的事情。

docker想过用HOOK的方式,欺骗进程,但实施起来工作太过复杂,兼容性差,稳定性也得不到保障,思来想去也没想到什么好的主意。

正在一筹莫展之际,docker又想起了Linux长老送给自己的锦囊,他赶紧拿了出来,打开了第二个锦囊,只见上面写着:namespace

Docker的诞生背景与设计初衷,以及发展前景,Docker从零到精通:实战指南,docker,容器,linux,运维,k8s,云原生

docker还是不解其中之意,于是又在Linux帝国到处打听什么是namespace。

经过一阵琢磨,docker总算是明白了,原来这个namespace是帝国提供的一种机制,通过它可以划定一个个的命名空间,然后把进程划分到这些命名空间。

而每个命名空间都是独立存在的,命名空间里面的进程都无法看到空间之外的进程、用户、网络等等信息。

这不正是docker想要的吗?真是踏破铁鞋无觅处,得来全不费功夫!

docker赶紧加班加点,用上了这个namespace,将进程的“视野”锁定在容器规定的范围内,如此一来,容器内的进程彷佛被施上了障眼法,再也看不到外面的世界。

Docker的诞生背景与设计初衷,以及发展前景,Docker从零到精通:实战指南,docker,容器,linux,运维,k8s,云原生

2-3、 CGroup

🚩🚩🚩文件系统和进程隔离的问题都解决了,docker心里的石头总算是放下了。心里着急着想测试自己的容器,可又好奇这最后一个锦囊写的是什么,于是打开了第三个锦囊,只见上面写着:CGroup。

这又是什么东西?docker仍然看不懂,不过这一次管不了那么许多了,先运行起来再说。


试着运行了一段时间,一切都在docker的计划之中,容器中的进程都能正常的运行,都被他构建的虚拟文件系统和隔离出来的系统环境给欺骗了,docker高兴坏了!


很快,docker就开始在Linux帝国推广自己的容器技术,结果大受欢迎,收获了无数粉丝,连nginx、redis等一众大佬都纷纷入驻。


然而,鲜花与掌声的背后,docker却不知道自己即将大难临头。


这天,Linux帝国内存管理部的人扣下了docker准备“处决”掉他,docker一脸诧异的问到,“到底发生了什么事,为什么要对我下手?"


管理人员厉声说到:“帝国管理的内存快被一个叫Redis的家伙用光了,现在要挑选一些进程来杀掉,不好意思,你中奖了

危险了!除了内存,还有CPU、硬盘、网络等等资源,如果某个容器进程霸占着CPU不放手,又或者某个容器进程疯狂写硬盘,那迟早得连累到自己身上。看来必须得对这些进程进行管控,防止他们干出出格的事来。

这时候,他想起了Linux长老的第三个锦囊:CGroup!说不定能解这燃眉之急。


经过一番研究,docker如获至宝,原来这CGroup和namespace类似,也是Linux帝国的一套机制,通过它可以划定一个个的分组,然后限制每个分组能够使用的资源,比如内存的上限值、CPU的使用率、硬盘空间总量等等。系统内核会自动检 查 和 限 制 这 些 分组中的 进程 资 源使用量。

Docker的诞生背景与设计初衷,以及发展前景,Docker从零到精通:实战指南,docker,容器,linux,运维,k8s,云原生

😸😸😸

Linux长老这三个锦囊简直太贴心了,一个比一个有用,docker内心充满了感激。


随后,docker加上了CGroup技术,加强了对容器中的进程管控,这才松了一口气。


在Linux长老三个锦囊妙计的加持下,docker可谓风光一时,成为了Linux帝国的大名人。

👻👻👻

 二、docker诞生

1、dotCloud 成立

🚩 2008年,一家名为 dotCloud 的公司成立,总部位于美国旧金山,该公司最初提供的是面向开发者的多语言云平台服务,允许开发者在云上部署、管理和扩展应用程序。他们的目标是利用容器技术创建一种大规模的创新工具,让任何人都可以使用。

🚩 2010年,dotCloud获得了创业孵化器Y Combinator的支持,并开始吸引到一些真正的投资。在接下来的3年中,dotCloud内部孵化了一款名为Docker的产品。

🚩 2013年初,dotCloud 公司创始人之一的 Solomon Hykes 发起了一个 Docker 的开源项目,docker的源代码托管在Github上,基于go语言并遵从Apache2.0协议开源。docker是基于LXC的高级容器引擎,提供了一种用容器轻松创建、部署和运行应用程序的工具。docker的底层技术是Linux容器技术,可以提供轻量级的虚拟化,以隔离进程和资源。

Docker的诞生背景与设计初衷,以及发展前景,Docker从零到精通:实战指南,docker,容器,linux,运维,k8s,云原生

docker的诞生背景是dotCloud公司需要一种方便的方式来创建和管理容器,于是开发了一套内部工具,之后被命名为“docker”。docker的理念是想通过对应用封装、分发、部署和运行生命周期进行管理,达到应用组件级别的“一次封装,到处运行”。

 随着docker的火爆,dotCloud公司正式决定更名为docker股份有限公司。docker的标志设计得十分有意思,起初docker公司是一家名为dotCloud的PaaS提供商,为了方便创建和管理这些容器,dotCloud开发了一套内部工具,之后被命名为“Docker”。

2、 docker标志

关于 docker 的标志设计是其品牌形象的一部分,它传达了一些重要的意义和理念:

船舶容器的象征: docker 标志的最显眼的部分是一个带有船舶轮廓的容器。这个图标象征着集装箱,容器的概念是 docker 技术的核心。它指的是容器化技术的概念,即将应用程序及其所有依赖项封装在一个独立的环境中。Docker的诞生背景与设计初衷,以及发展前景,Docker从零到精通:实战指南,docker,容器,linux,运维,k8s,云原生

 简洁性和易识别性: docker 标志设计简洁而又易于识别,它以简单的线条和形状组成,这有助于让人们很容易地将其与 docker 技术联系起来。

现代感和创新: docker 标志的设计风格传达了现代感和创新性。这反映了 docker 作为一种革命性的技术,它改变了软件开发和部署的方式。

开放性和社区: docker 标志的设计也传达了开放性和社区精神。docker 是一个开源项目,它受到全球开发者社区的支持和贡献。标志设计的简洁性和易于理解性也有助于向更广泛的社区传达 docker 的理念和价值观。

总的来说,docker 标志的设计是为了传达 docker 技术的核心概念、品牌形象以及其在现代软件开发领域中的地位和重要性。它是 docker 公司和社区的一种象征,同时也是 docker 技术的视觉化代表。

 3、 docker发展里程碑

  • 2014年6月,docker发布了1.0版本,主要解决了之前版本的一些问题,增强了安全性和稳定性,并引入了Docker Hub这个中央仓库。
  • 2015年4月,docker发布了1.6版本,主要引入了Docker Compose这个工具,可以帮助用户管理和运行多个容器。
  • 2016年7月,docker发布了1.12版本,主要引入了Docker Swarm这个工具,可以帮助用户管理和编排多个docker容器。
  • 2018年11月,docker发布了18.09版本

Docker的诞生背景与设计初衷,以及发展前景,Docker从零到精通:实战指南,docker,容器,linux,运维,k8s,云原生

 三、 docker发展前景

  • 首先,随着云计算的普及和数字化转型的加速,越来越多的企业和组织需要将应用程序迁移到云端。而Docker作为一种轻量级的容器技术,可以为应用程序提供更好的隔离和安全性,同时也使得应用程序的部署和管理更加简单和高效。因此,Docker在云计算领域的应用前景非常广阔。
  • 其次,随着物联网和边缘计算的发展,越来越多的数据需要在边缘设备上进行处理和存储。而Docker可以提供一种容器化的解决方案,将数据处理和存储应用进行容器化,部署在边缘设备上,使得数据的处理在边缘端就可以完成,从而减少了数据传输和处理的延迟,提高了应用的响应速度和稳定性。因此,Docker在边缘计算领域的应用前景也非常广阔。
  • 此外,随着容器技术的不断发展,Docker也在不断完善和更新。Docker持续改进和更新其技术,完善核心功能,增加新功能并解决安全和稳定性问题。同时,Docker社区也在不断发展壮大,越来越多的企业和开发者加入到这个社区中,共同推动容器技术的发展。

四、总结

Docker是一种开源的容器化技术,它使得应用程序可以在任何Docker环境中快速、可靠地运行,而无需进行大量的配置和安装工作。由于其强大的功能和广泛的应用,Docker的发展前景非常广阔。其在云计算、边缘计算等领域的应用将会越来越广泛,同时随着技术的不断完善和更新,Docker也将会在未来继续保持其领先地位。文章来源地址https://www.toymoban.com/news/detail-830783.html

到了这里,关于Docker的诞生背景与设计初衷,以及发展前景的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UI设计师的发展前景是否超越了平面设计?

    这是一个现代经济学的典型话题:应该跟随趋势追逐风口,还是坚守成熟的“夕阳产业” UI 设计行业发展短短不过 20 多年,但平面设计这个“夕阳产业”最早可以追溯到上世纪的二三十年代。显而易见的答案是,更新兴的 UI 设计师得到的好处更多,无论是起始薪资还是工作

    2024年02月09日
    浏览(47)
  • 关于Go语言的发展前景

    Go语言(Golang)是一种高效、可靠、简洁的编程语言,由Google公司于2009年发布。作为一种新兴语言,Go语言在近年来得到了广泛的关注和应用。本文将从技术优势、应用场景及未来发展等方面,探讨Go语言的发展前景。 一、技术优势 1.高效性 Go语言在设计之初就考虑到了高并

    2024年02月05日
    浏览(46)
  • 关于VB语言的发展前景

    VB语言是一种流行的开发语言,它被广泛应用于各种领域的软件开发。本文将从市场前景、技术趋势、应用场景和未来发展等方面,探讨VB语言的发展前景。 一、市场前景 VB语言是一种非常流行的开发语言,它的易学易用、开发效率高、可移植性强等特点,使得VB语言在全球范

    2024年02月07日
    浏览(48)
  • 关于Delphi语言的发展前景

    随着信息技术的快速发展,软件开发行业也在不断壮大。作为一种非常实用的编程语言,Delphi在软件开发领域中拥有着广泛的应用。然而,随着技术的不断进步,Delphi是否还有着广阔的发展前景呢?在本文中,我们将探讨Delphi语言的发展前景。 一、Delphi语言的现状 Delphi是一

    2024年02月04日
    浏览(57)
  • 云计算的发展前景怎么样

    云计算是当前科技领域中最受关注的领域之一,它的出现改变了传统的计算模式,使得企业和个人能够更加便捷地访问和使用计算资源。随着云计算技术的不断发展,它的前景也变得更加光明。 以下是云计算的发展前景: 云计算的市场份额将继续增长:根据市场研究机构的报告,云

    2024年02月12日
    浏览(42)
  • 软件测试简单么,发展前景如何?

    随着人工智能时代的到来,IT行业受到了越来越多人的重视。软件测试作为把控软件质量必不可少的环节,其重要性可见一斑。 软件测试可以说是算得上IT行业里相对简单的语言,但是也只是相对哈,如果想学习下去还是要看个人的学习能力的,自学一下就知道到底简单不简

    2024年02月13日
    浏览(51)
  • RFID系统简介:优点、应用与发展前景

    一、介绍RFID系统 RFID系统全称是Radio Frequency Identification,是一种通过电磁场自动识别标记(Tag或RFID标签)并读取相关数据的技术。与条形码技术相比,RFID系统最大的特点就是可以自动识别、无须接触扫描,并且可以存储更多的信息。由于这些优点,RFID系统在日常的生产与物

    2024年02月05日
    浏览(52)
  • 大数据行业发展前景及岗位方向如何?

    大数据行业发展前景及岗位方向如何?中国大数据行业的发展依然呈稳步上升趋势,大数据总体发展水平较好在各行业都有应用,其中金融大数据、政务大数据的应用水平高,同时交通、电信、商贸、医疗、教育、旅游等行业大数据的发展水平也有显着提升。 接下来我们具体

    2023年04月08日
    浏览(46)
  • HTML5的应用现状与发展前景

    HTML5,作为Web技术的核心,已经深深地改变了我们看待和使用Web的方式。它不仅提供了数不尽的新特性和功能,还使得Web设计和开发更加互动、更加直观。这篇文章将探讨HTML5的当前应用现状,以及它的未来发展前景。 HTML5的应用现状 HTML5的应用现状可以从多个方面来看,包括

    2024年02月16日
    浏览(45)
  • 2023年外贸业务员的职业发展前景

    外贸业务员未来发展前景不错,尤其是2020年的中国外贸,外贸行业应该不会像以前那么难做了。各行各业都有机会出类拔萃,只要肯努力,相信自己能做好。 作为一个外贸业务员,你首先应该具备这些特征,米贸搜为您整理如下: 1.基础知识扎实:熟悉外贸流程,熟悉各种单证

    2024年02月12日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包