前言
快半年没更新博客了都长草了www,最近工作实在太忙了,能留给自己玩的时间也越来越少了,趁这次在公司做的分享所整理的资料,我也抽空跟大家系统讲解一下什么是docker.
docker的出现彻底解决了应用在运行时对环境依赖的问题,免除了开发者在不同机器上分别部署运行环境这一机械性的工作,只要用以打包好的镜像,你就可以运行在任何主流linux之上,而且你所得到的这些是几乎没有多余的性能消耗!我相信光靠这点docker就已成功引起了你的注意.接下来让我们了解什么是docker,以及它工作原理吧!
Docker容器技术与传统VM虚拟技术
用过虚拟机的人都知道,当你试图构建一个全新的运行环境来运行你的应用的时候,虚拟机会利用hypervisor技术来模拟一套全新的硬件环境来安装你的OS,并从物理机分割出这部分内存用于运行系统,在这之上你才能运行你的应用,可想而知这对于资源消耗是极大的,而docker正是这种问题的最好解决方案,见下图!
docker实现了你所有"容器"运行在一个内核之上,而且容器与容器之间都是完全隔离的,每个容器的运行都是一个全新的环境!
Docker的三大组成
Image镜像
- 构建于被支持的文件系统之上,目前被广泛使用的有Aufs、devicemapper、btrfs,都属于联合文件系统。
- UFS允许相互隔离的文件或目录透明的叠加在一起,Docker正是利用这个特点将这些层组合为一个镜像。
- 分层管理,由json负责描述层级结构,对镜像所有更改提交清晰展现,支持快速迭代,回滚等等操作,有点类似于git
Container容器
Repository仓库
- 笼统的来讲,仓库是存放镜像的中心,它维持着Docker整个生态圈的运作
- Docker Hub是世界最大的公共镜像仓库,在那里,你可以找到你想要的任何镜像
- 结合国情,安利个国内的公共镜像站:DaoCloud
联合文件系统
ufs联合文件系统可以将不同物理路径下的文件挂载到统一路径下,支持将文件的修改作为一次提交记录一层层的覆盖叠加,docker正是利用了这一特性实现了镜像的分层管理,使用者可根据不同需求的组成出不同的镜像来满足需求!
Docker的工作流
总结
认真看我以上所提到的几点,那你就已经对docker有了个系统性的认识了,如果想有一个更深层次的了解大家不妨阅读下源码,自己去寻找答案,我也鼓励大家这么做.
这是本次分享准备的PPT,有需要的可以拿去参考,注意不要更改作者信息哦~ https://otokaze.cn/share/docker/
Comments | NOTHING (这是个静态化页面,评论后要等CDN刷新啦~)