设为首页 收藏本站
查看: 1195|回复: 0

[经验分享] Docker 之 概念介绍

[复制链接]

尚未签到

发表于 2019-2-21 08:57:46 | 显示全部楼层 |阅读模式
1  概述
linux容器是一类解决方案,如lxc,dockerlxc是容器管理功能。
lxc是容器解决方案较早的实现者,docker是后续的实现者。
docker进一步轻量化lxc需求,把做好的系统模板做成一个磁盘映像文件,安装的过程相当于是复制镜像文件。
可以做一个centos镜像,二级mysql镜像和php镜像。
docker的一个程序只用于运行一个进程。所以在docker里就不需要init进程(用来管理所有的进程,但是这里只有一个进程)。如果一个用户空间只有一个子进程,就不需要容器了。
应用程序的分发和发布
docker实现应用分发的结构。docker负责把集装箱安装和卸载。
lxc没有解决程序分发的问题,docker借助于镜像文件,把依赖的文件都打包到镜像文件里,实现更简单的安装过程。
docker把要启动的环境都打包成一个包,做成镜像文件,这个镜像文件只需要放到指定的路径下,就可以被启动,不需要释放文件。镜像文件启动后是在一个独立环境下运行的进程。
docker把最终需要运行的文件都放到了一起。让多个进程通信,即让容器间通信即可。
如果当前主机奔溃,要新建一个环境
依赖相同的文件,在用户空间来看。是不一样的,但是,在底层可能是同一个。
docker能重构程序分发的技术。
这里开发镜像就变成尤其重要。
任何一个物理主机down机,就需要用虚拟化的主机,如vsphere技术,或者是k8s。实现物理机的快速迁移。
实现弹性扩展和压缩。跨多主机的容器编排和框架,就PaaS,平台级服务。是一个云环境
一个docker容器只是用来运行一个程序。
分层构建,启动容器,在本地放置相应的镜像文件。分层构建可以复用。依赖于特殊的存储设备,本地不支持分层构建的存储机制,因此需要在内核的基础上用相应技术实现。
docker最开始是lxc的二次封装,引擎为lxc,提升了lxc的应用和便捷,但是,后续又重新研发了容器引擎,抛弃了lxc。之后,docker自有的容器技术为libcontainer,后续升级为runC,runC是开放式的工业化标准,容器标准为OCI,有两个规范,runtime-sepc和image-sepc,最新的docker遵循runC标准
Docker的竞争对手coreOS,coreOS也是一个容器技术,通过rkt实现
2  Docker架构
在一台主机上安装docker deamon 和docker client,启动守护进程,通过client的命令行工具,client发起命令,连接到docker deamon进程,deamon来接收命令,在本地启动一个容器,可以从互联网上拉一个镜像下来,后期可以根据自己的分发需求,封装镜像
相关名词解释如下
Docker host:运行容器的主机
registry:放置镜像的仓库集合的服务器,为docker的registry。docker有镜像托管的镜像,可以在docker hub上注册账号,账号可公共可私有。目前docker hub仓库没有收费。
client:是用来触发容器的运行
docker daemon为服务端,用来启动容器,接收远程的控制请求
dockerc/s架构的应用。docker即是客户端也是服务器端,重点是看哪个工具实现
Docker deamon 和docker基于http或者https协议进行通信
Docker架构如下
DSC0000.jpg
docker镜像文件是只读的,防止一个容器被修改影响另一个容器。由于镜像是分层构建的,可以临时构建一层可读可写的,覆盖在镜像的最上层。这里文件可以被删除或者更改,用户看到的任何修改都是在这一层修改的,对原生镜像没有任何的修改。
因此每个容器的读写操作都是在最上层的读写层上实现的。万一容器被删除,所有的数据都没有,包括这个读写层上的数据。但是这样不利于迁移和分发,因为过去运行过程的中间数据没有在镜像里,这个读写层尽量放临时文件,重要的文件,需要通过挂载到外部存储的卷来实现,这样迁移的时候,容器和重要数据都可以被正常的加载。
容器自身有生命周期,数据在卷上,关闭容器后,如果要重新打开,只需要把新的镜像关联到对应的卷即可加载相应的数据,将数据和镜像分离。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-675130-1-1.html 上篇帖子: Docker 之 LXC介绍 下篇帖子: Docker 之 docker安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表