docker的来龙去脉

1.先看看docker的logo:

鲸鱼、大船、平台;

集装箱、容器、运行程序;

2、说说docker公司的发展:

Docker 公司起初是一家名为 dotCloud 的平台即服务(Platform-as-a-Service, PaaS)提供商。

Docker 最初是 dotCloud 公司创始人Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。

底层技术上,dotCloud 平台利用了 Linux 容器技术。为了方便创建和管理这些容器,dotCloud 开发了一套内部工具,之后被命名为“Docker”。Docker就是这样诞生的!

Docker 最初是在 Ubuntu 12.04 上开发实现的;Red Hat则从 RHEL 6.5 开始对 Docker 进行支持;Docker 项目后来还加入了 Linux 基金会,并成立推动开放容器联盟(OCI) 由于dotCloud 的 PaaS 业务并不景气,Docker 项目的火爆,在 2013 年底,放弃dotCloud PaaS 平台,dotCloud 公司决定改名为 Docker.

3.设计灵感:

参考博客:https://blog.51cto.com/8204129/1614983

https://baijiahao.baidu.com/s?id=1598001525633457324&wfr=spider&for=pc

Docker”一词来自英国口语,意为码头工人(Dock Worker),即从船上装卸货物的人。 在程序员的世界里,Docker搬运的是集装箱(Container),集装箱里装的是任意类型的App,开发者通过Docker可以将App变成一种标准化的、可移植的、自管理的组件,可以在任何主流系统中开发、调试和运行。最重要的是,它不依赖于任何语言、框架或系统。

先看三张图:

第一张,货轮,像不像docker的logo?

比较第二张和第三张,有没有什么想法?

各种货物====各种执行程序;

不同的运输工具====不同的运行平台;

没有集装箱的话,不同的平台针对不同的货物,需要不同装载工具,装卸、运输很不方便;

有了容器,各种运行程序对于平台来说都是一样的。

讲个小故事:

代有一位国王在它的国境里视察,因为路面崎岖不平,还有很多碎石头,刺得国王的脚又痛又麻。

回到了王宫后,他下了一道命令,要将国内所有的道路都铺上一层牛皮。让他自己和]全国的人走路不再受刺痛之苦。众大臣听了国王的话都一筹莫展,知道这很难。即便杀尽国内所有的牛,也凑不到足够的牛皮来铺路,而且花费昂贵。这时,一个聪明的仆人向国王建言:可以试着用牛皮将脚包起来,大王的脚就不会忍受痛苦了。国王听道而顿悟了,便收回命令,采纳了建议,于是,皮鞋就这样发明了出来了。

解决脚痛不方便的方案有二:

第1方案是:将所有道路都铺上一层牛皮。

第2方案是:用两片牛皮包住脚,这就是皮鞋。

传统的虚拟化(virtualization)技术就相当于在各道路(实体机器)上铺一层牛皮(VM, 虚拟机),然后让国王的脚(App)在牛皮(VM)上走路(执行)。

传统上云平台采取虚拟化手段来满足用户个别的资源需求分配,以及确保其可用性和隔离性。

然而无论是KVM还是Xen等Guest OS都很浪费资源又难于管理, 都不如Docker集装箱(皮鞋)来的更加灵活、快速和节省资源。

4.docker vs 虚拟机

参考博客:https://www.jianshu.com/p/46334b8e13bf

传统虚拟化是虚拟出一套硬件后,在其上运行一个完整的操作系统,在系统之上再运行应用进程;

容器内的应用进程直接运行于宿主机的内核,容器内没有自己的内核,也没有进行硬件虚拟。

因此容器要比传统虚拟机更为轻便的。

虚拟技术的缺点 但有优点就有缺点,我们每创建一个虚拟机的时候,都会创建一个操作系统,这样无疑大大的增加的资源的浪费。当虚拟机越多,资源浪费就越多。

但是,容器技术产生的主要原因,并不是因为资源浪费。主要的原因使因为开发和运维人员环境不一致的问题,导致开发效率大大降低的问题。

容器可以帮我们把开发环境及应用整个打包带走,打包好的容器可以在任何的环境下运行,这样就可以解决开发与运维环境不一致的问题了,所以:

容器解决了开发和运维之间的矛盾:   在开发和运维之间搭建了一个桥梁,是实现devops的最佳解决方案

容器是什么:

--对软件和其依赖环境的标准化打包

--应用之间相互隔离(实现vm的功能)

--共享一个OS Kernel(解决资源浪费)

--可以运行在很多主流操作系统上(不依赖于环境)

 

5.docker是什么?

Docker 是一个开源的应用容器引擎。 Docker 是一个可以将应用程序及其依赖打包到几乎可以在任何服务器上运行的容器的工具。 一种新颖方式实现的超轻量虚拟机。 Docker是一种轻量虚拟化的容器技术,提供类似虚拟机的隔离功能,并使用了一种分层的联合文件系统技术管理镜像,能极大简化环境运维过程。 Docker容器最重要价值在于提供一整套平台无关的标准化技术,简化服务的部署、升级、维护,只要把需要运维的各种服务打包成标准的集装箱,就可以在任何能运行docker的环境下跑起来,达到开箱即用的效果,这个特点才是Docker容器风靡全球的根本原因

 

Build Once, Run Anywhere

要真正理解docker是什么那就去使用他。

6.应用场景:

参考博客:

https://www.cnblogs.com/163yun/p/9626706.html

1.web部署:

2.持续集成和持续部署:

3.微服务

 

 

 

7、参考了一些网上的博客,再次感谢作者!

Dockeræ å¿

 CaaS(Containers as a Service)-容器即服务

 SaaS : (软件即服务)应用

 PaaS : (平台即服务)软件部署平台

 IaaS : (基础设施即服务)cpu、内存、存储

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值