用通俗的话说明docker是什么
2017-05-17 11:37
260 查看
1.docker官方解释:
见 【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的时候生成一个临时的layer,多个layer构成一个image镜像,如果命令有改动,会生成新的layer,没有改动,就只保留一份layer
现在回答一个之前没有说明的【可以多平台运行,其实是“作弊”的多平台运行】的问题,为什么说”作弊“呢?因为docker并没有让image运行在不同的操作系统上,比如说linux,windows上,而是运行在docker支持的类似java的JVM的沙盒里面,和java的跨平台采用的是一类的虚拟化技术
3.结束语
见到新技术的时候,不要去怕深入,新技术的出现,肯定是因为有新需求的出现,新需求出现了,但原有的解决相应问题的解决方案不够用了,那么便会推进新的技术理论的出现和发展不要为了学习新技术而学习新技术,因为如果没有具体的去使用新技术,是不那么容易理解的
搞不懂新技术是干什么的,要学会不求甚解,先学会用,然后再相辅相成的大胆猜测,小心求证
接下来还会将一些流行的技术,用通俗的话来说明,有兴趣的,可以继续关注我的博客的动态,菜鸟上路,请多多关照!欢迎大家指正!
相关文章推荐
- 通俗的解释Docker是什么
- 如何通俗解释Docker是什么?
- 如何通俗解释Docker是什么
- 如何通俗解释Docker是什么?
- 如何通俗解释Docker是什么
- 如何通俗解释Docker是什么?
- 微软Win 8说明了什么?
- 在美国西雅图,紫光、世纪互联与微软“结盟”说明了什么?
- “M/N谜团”说明什么?
- 什么是Docker?
- 【产品思想】让你通俗地明白什么是真正的互联网平台
- docker是什么
- 什么是Docker
- 联想预装Ubuntu说明了什么?
- docker是什么
- 请说明Java中字符'\'的含义,有什么作用?
- docker import与docker load的区别是什么?
- 转:学习为了什么?我一直说学习是为了学会更好的思考,其实更通俗的讲学习是为了避免犯大错误
- 什么是Docker Volume?
- Docker Orchestration... What It Means and Why You Need It (Docker 编配 ...它是什么意思,为什么你会需要它?)