频道栏目
首页 > 资讯 > 其他综合 > 正文

用通俗的话说明docker是什么

17-05-22        来源:[db:作者]  
收藏   我要投稿

1.docker官方解释:


看完了是不是一头雾水?还是不知道做什么的,对么?反而更迷糊了?不急,接下来看~~ 还有很多不明白的,比如说:容器是什么?镜像是什么?还有很多很多疑问? 说实话,我非常讨厌这样的官方的很学术的介绍,非常的不利于初学者初次接触这种新技术,可能就被这个解释给弄得不敢继续深入下去了,感觉非常非常难,废话不多说,上正餐!

2.我的理解:

docker是用来做软件发布的一个软件,是一个工具


可以多平台运行,其实是“作弊”的多平台运行


用来打包软件运行环境和基于运行环境开发的软件(这里说得不够准确,大牛们原谅我说得不够准确,因为要说得通俗,后面会细解释)


打包好的运行环境(即系统)和基于运行环境开发的软件生成的东东叫镜像(image),类似我们装windows系统使用过的GHO、ISO等系统镜像,但是有些区别,这里不深入讨论有什么区别。


上面也说过了可以在多平台运行,那么运行在哪呢?是运行在容器中,这个容器叫Container,Container是被docker管理的


Container和image的关系就像鱼缸和鱼儿的关系,image是鱼儿,container是鱼缸,也就是说image是运行在Container里面的


image并不是真的鱼儿,而是一个镜像,当要 在container中运行image镜像的时候,docker会拷贝一个image到container中,原本的image还是被docker管理着,运行在container中的image是一个副本,准确来说,不是副本,这里不深入说,有兴趣的可以去搜搜cgroup,docker利用了linux系统的这个弄的。不深入来看,可以理解为一个image副本


细心的使用过docker的读者会发现linux 基础 image远小于我们正常使用的linux系统,原因是这样的,docker官方提供了基础镜像,主流的linux系统都被大刀阔斧的精简了,只留下了必须留下的东西,砍掉了很多功能,让系统非常非常的纯净,没有任何多余的软件


docker打包系统生成image镜像,并不是把虚拟机中,我们正在在运行的系统进行打包操作,这点要注意


要生成自定义镜像,有个东东来了,那就是Dockerfile,简单来说,Dockerfile是一个脚本,用来编写要自定义的镜像该如何去生成的步骤,比如说,要生成一个自定义的image镜像,是基于ubuntu的,那么在Dockerfile的最前头应该有这么一句话 FROM ubuntu等等,具体的Dockerfile的指令操作,在此不细说,大家只要明白Dockerfile是个用来描述自定义镜像的生成步骤的脚本,啰嗦一句,每个Dockerfile中操作的指令都会让docker在执行Dockerfile的时候生成一个临时的image


现在回答一个之前没有说明的【可以多平台运行,其实是“作弊”的多平台运行】的问题,为什么说”作弊“呢?因为docker并没有让image运行在不同的操作系统上,比如说linux,windows上,而是运行在docker支持的类似java的JVM的沙盒里面,和java的跨平台采用的是一类的虚拟化技术


3.结束语

见到新技术的时候,不要去怕深入,新技术的出现,肯定是因为有新需求的出现,新需求出现了,但原有的解决相应问题的解决方案不够用了,那么便会推进新的技术理论的出现和发展 不要为了学习新技术而学习新技术,因为如果没有具体的去使用新技术,是不那么容易理解的 搞不懂新技术是干什么的,要学会不求甚解,先学会用,然后再相辅相成的大胆猜测,小心求证 接下来还会将一些流行的技术,用通俗的话来说明,有兴趣的,可以继续关注我的博客的动态,菜鸟上路,请多多关照!欢迎大家指正!
相关TAG标签
上一篇:行列式介绍及Eigen/OpenCV/C++的三种实现
下一篇:Certified Scrum Professional (CSP)认证经验
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站