毫无疑问,DocKer成了近些年来最火热,甚至最具颠覆性的技术之一。国际上,所有泛云计算相关的公司,几乎都在某种程度上宣布支持并集成Docker。在2014年6月的DockerCon中,很多公司都分享了他们自己如何和Docker集成的故事。虽然每家公司用着各自不同方式实现着不同程度的同Docker的集成,但他们都一致认识到了Docker可能会为他们带来的潜在收益。Microsoft,Amazon,IBM,Google,Facebook,Twitter,Red Hat,Rackspace和Salesforce等诸多公司共聚一堂,共同支持某一技术的场面似乎也不是我们经常能看到的。同时,国内众多泛云计算公司,互联网公司,甚至相对传统的IT厂商也对Docker多有关注。 Docker的容器技术在行业中获得如此多关注的原因在于它提供了一个平台,该平台能够在单个包中高效集成并管理应用以及所有的依赖组件,该应用包能够被放置到容器中而且可以在任何Linux服务器上运行。Docker封装应用的方式使得它能够在本地、私有云、公有云等平台中运行。因此Docker提供了巨大的应用灵活性及可移植性——正是这些属性引发了众多企业应用者的关注。
Docker 是什么?
Docker 是 Docker.Inc 公司开源的一个基于 LXC 技术之上构建的 Container 容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。
Docker 就是一个应用程序执行容器,类似虚拟机的概念。但是与虚拟化技术的不同点在于下面几点:
虚拟化技术依赖物理CPU和内存,是硬件级别的;而 docker 构建在操作系统上,利用操作系统的容器(containerization)技术,所以 docker 也可以运行在虚拟机上,目前大多数公司都是这么干的。
虚拟化系统一般都是指完整的操作系统镜像,拥有全套类库、内核、驱动和文件系统,称为系统;而 docker 开源而且轻量,与宿主机共享内核、驱动、文件系统和基础设备,称为容器,单个容器部署单独应用,容器与容器之间环境独立互不干扰,比如一个容器运行基于 java 7 的 Tomcat ,另一个容器运行基于 java 8 的 Jboss,类库之间不会有任何干扰和冲突。
传统的虚拟化技术使用快照来保存状态,空间占用大且利用率不高;而docker在保存状态上不仅更加轻便且低成本,在引入了类似源代码管理机制后容器的快照历史版本可以方便的记录和迭代,同时切换成本也相对较低。
传统的虚拟化技术在构建系统的时候较为复杂,编配和构造消耗精力巨大,需要考虑硬件、系统、网络环境等等因素;而docker可以通过Dockfile来构建整个容器,重启和构建速度很快。更重要的是Dockfile可以手动编写,这样应用程序开发人员可以通过发布Dockfile来指导系统环境和依赖,对于持续交付更加有利。
Docker的主要特性
文件系统隔离:每个进程容器运行在完全独立的根文件系统里。
资源隔离:可以使用 cgroup 为每个进程容器分配不同的系统资源,例如 CPU 和内存。
网络隔离:每个进程容器运行在自己的网络命名空间里,拥有自己的虚拟接口和 IP 地址。
写时复制:采用写时复制方式创建根文件系统,这让部署变得极其快捷,并且节省内存和硬盘空间。
日志记录:Docker 将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。
变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。
交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互shell。
如果大家想更好的学习交流,想自己进步更快,不妨加加我们的学习群,大量免费视频和课程资料我们都会在群里分享:
上海尚观一元堂-云计算:546054552。
更多内容请移步直播课学习点击链接跳转:https://ke.qq.com/course/29913#tuin=3f63c387
|