千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 什么是Docker

什么是Docker

来源:千锋教育
发布人:xqq
时间: 2023-12-02 13:54:02 1701496442

什么是Docker?Docker是一个开源项目,诞生于2013年初,最初是dotCloud公司(后改名为Docker Inc)内部的一个开源的PaaS服务的业余项目。其基于谷歌公司推出的Go语言进行开发实现,后加入Linux基金会,遵从Apache 2.0协议,项目代码在GitHub上进行维护。

Docker是基于Linux内核的cgroup、namespace以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其他的隔离的进程,因此也称其为容器。

Docker最初的实现是基于LXC(Linux Containers)。LXC是Linux原生支持的容器技术,可以提供轻量级的虚拟化。可以说Docker就是基于LXC发展起来的,提供LXC的高级封装和标准的配置方法。在LXC的基础之上,Docker进行了进一步的封装,从文件系统、网络互联到进程隔离等待,极大地简化了容器的创建和维护,使得Docker技术比虚拟机技术更为轻便、快捷。

从Docker 0.7以后开始去除了LXC,转而使用自行开发的libcontainer;从Docker 1.11开始,则进一步演进为使用runC和containerd。

Docker的主要目标是“Build、Ship and Run Any App、Anywhere”,即通过对应用组件的封装(Packaging)、分发(Distribution)、部署(Deployment)、运行(Runtime)等生命周期的管理,达到应用组件级别的“一次封装,到处运行”(Build once,Run anywhere)。这里的应用组件,既可以是一个Web应用,也可以是一套数据库服务,甚至是一个操作系统。

将应用运行在Docker容器上,可以实现跨平台、跨服务器,只需一次配置准备好相关的应用环境,即可实现到处运行,保证研发和生产环境的一致性,解决了应用和运行环境的兼容性问题,从而极大地提升了部署效率,减少故障的可能性。

Docker与虚拟机有着类似的资源隔离和分配的特点,但不同的架构方法使Docker能够更加便携、高效(见图1)。

图1 VM与Docker架构比较

传统的虚拟机架构是:物理机→宿主机操作系统→Hypervisor支持→虚拟机操作系统→应用程序。虚拟机是在宿主机上基于Hypervisor虚拟出一套操作系统所需的硬件设备,并在这些虚拟硬件上安装操作系统Guest OS,运行不同的应用程序,应用之间实现相互独立、资源隔离。

但由于需要Hypervisor来创建虚拟机,且每个虚拟机里需要完整地运行一套操作系统Guest OS,因此会带来很多额外资源的开销。

Docker的架构是:物理机→宿主机操作系统→Docker引擎→应用程序。Docker容器中没有Hypervisor这一层,虽然它需要在宿主机中运行Docker Engine,但原理却完全不同于Hypervisor,并没有虚拟出硬件设备,更没有独立部署全套的操作系统Guest OS。

Docker容器是使用Docker Engine而不是管理程序来执行,因此容器比虚拟机小,并且由于主机内核的共享,可以更快地启动,具有更好的性能、更少的隔离和更好的兼容性。

Docker容器能够共享一个内核并共享应用程序库,因此容器比虚拟机具有更低的系统开销,只要用户愿意使用单一平台来提供共享的操作系统,容器可以更快、使用资源可以更少。

虚拟机可能需要几分钟才能创建并启动,而只需几秒钟即可创建并启动一个容器。与在虚拟机中运行应用程序相比,容器中包含的应用程序提供了卓越的性能。

tags: IT培训
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT