您现在的位置是:首页 > 文章详情

关于Docker你不知道的事——什么是Docker

日期:2016-03-21点击:412

(提示:对Docker感兴趣的朋友可以加我微信:ghostcloud2016,然后我把你加到我们的一个Docker爱好者群组里。)

之前谈虚拟化历史就说过,Docker实际是源自于dotCloud的一个项目,在2013年开源后就飞速发展。我们今天要谈的是,什么是Docker?

Docker-engine

通常我们提Docker的时候,都指的是Docker-engine,docker-engine就是运行在主机上的一个守护进程,类似于于Hyper-V的管理程序。Docker-engine是C/S的架构,daemon就是它的server,我们通常使用的docker命令有两层功能,一层是作为daemon运行,一层是作为client运行。daemon可以监听在某一个socket端口上,也可以监听到unix本地socket之上,而client也可以操作本机的daemon和远程的daemon。当操作远程daemon的时候,需要在client后面跟IP、端口以及TLS证书。

容器是什么

谈到容器,很多人会把它当成是一个主机。这其实是错误的。容器在主机上就是一个进程,但是它有不同于普通的进程。普通的进程之间是共用的CPU、内存、网络、PID等资源,而容器是隔离的进程,它运行在一个沙盒之中,同时还能限定它所使用的资源。这主要借助于Linux Kernel的CGroup和Namespace技术,CGroup可以控制进程使用多少资源,如:CPU、内存、磁盘IO速率等,Namespace用来隔离资源,如:PID、网络、主机名等。正因为如此Docker最初原生只支持Linux,后来所谓的跨平台支持也只是通过VM来远程操控。不过Windows Server 2016已经加入了对Docker的原生支持。

怎么运行

一个进程肯定少不了对于内容的需求,就好比一台电脑不能没有硬盘。容器的内容就是它的Layered FS,这个也可以说是Docker创新的一方面。它使用了Copy-on-right的技术,将文件系统进行了分层,可以充分的复用公共部分。镜像其实很像以前我们安装操作系统的Ghost镜像,使用户能够快速的安装它需要的软件。容器运行时,就会装载镜像文件,以及相关的环境,同时在最上层加入一个可写层。

容器能解决什么问题

由于容器的轻量化,容器能解决的根本问题就是提升效率和速度。Docker 宣称的是Build, Ship and Run anywhere,只是从速度、效率和可移植性来讲的。但是,你有没有想过,云计算一直要解决的是什么问题——水平扩展,水平扩展是不是就需要很多的结点。对了,Docker会成为云计算的基础架构,这才是docker这么火的根本原因。说到具体的用途,我总结了一些:

  • 标准化应用发布,docker容器包含了运行环境和可执行程序,可以跨平台和主机使用;
  • 节约时间,快速部署和启动,VM启动一般是分钟级,docker容器启动是秒级;
  • 方便构建基于SOA架构或微服务架构的系统,通过服务编排,更好的松耦合;
  • 节约成本,以前一个虚拟机至少需要几个G的磁盘空间,docker容器可以减少到MB级;
  • 方便持续集成,通过与代码进行关联使持续集成非常方便;
  • 可以作为集群系统的轻量主机或节点,在IaaS平台上,已经出现了CaaS,通过容器替代原来的主机。
原文链接:https://yq.aliyun.com/articles/8623
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章