哪些是Docker

Docker最初是dotCloud公司创始人SolomonHykes在美国期间发起的一个公司内部项目,它是基于dotCloud公司多年云服务技术的一次革新linux学习视频,并于2013年3月以Apache2.0授权合同开源,主要项目代码在GitHub上进行维护。Docker项目后来还加入了Linux基金会,并创立促进开放容器联盟(OCI)。

docker hub怎么用_docker hub怎么用_docker hub怎么用

Docker自开源后遭到广泛的关注和讨论,至今其GitHub项目早已超过5万7千个星标和一万多个fork。甚至因为Docker项目的火热,在2013年末,dotCloud公司决定更名为Docker。Docker最初是在Ubuntu12.04上开发实现的;RedHat则从RHEL6.5开始对Docker进行支持;Google也在其PaaS产品中广泛应用Docker。

Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及OverlayFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。因为隔离的进程独立于寄主和其它的隔离的进程linux内存管理,因而俗称其为容器。最初实现是基于LXC,从0.7版本之后开始清除LXC,转而使用自行开发的libcontainer,从1.11版本开始docker hub怎么用,则进一步演变为使用runC和containerd。

Docker 架构

图1.4.1.1-Docker构架

docker hub怎么用_docker hub怎么用_docker hub怎么用

runc是一个Linux命令行工具,用于按照OCI容器运行时规范创建和运行容器。

containerd是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。

docker hub怎么用_docker hub怎么用_docker hub怎么用

Docker在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。促使Docker技术比虚拟机技术更为轻便、快捷。

下边的图片比较了Docker和传统虚拟化形式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于寄主的内核,容器内没有自己的内核docker hub怎么用,但是也没有进行硬件虚拟。因而容器要比传统虚拟机更为轻便。

传统虚拟化

图1.4.1.2-传统虚拟化

Docker

图1.4.1.3-Docker

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复