容器技术详解ppt课件.pptx

容器技术详解ppt课件.pptx

ID:59829260

大小:6.15 MB

页数:25页

时间:2020-11-24

容器技术详解ppt课件.pptx_第1页
容器技术详解ppt课件.pptx_第2页
容器技术详解ppt课件.pptx_第3页
容器技术详解ppt课件.pptx_第4页
容器技术详解ppt课件.pptx_第5页
资源描述:

《容器技术详解ppt课件.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、容器化技术与Docker杜浩宇2020.6从操作系统说起关键词:内核Shell内核空间用户空间ABIAPI系统调用接口为什么要有容器?麻烦的环境配置开发和运行环境存在差异以前的应用程序:几乎都是单块应用:大系统,多模块紧耦合:内部调用不常变更:需求稳定(改动成本高)如今的应用程序:解耦:微服务/异步经常变更:快速迭代动态创建和部署:服务化新架构的挑战多样化的技术栈需要动态创建机器很多活动组件运维人员需要管理复杂的架构为什么要有容器?容器是什么?密封的便携的可移植的持续运行“容器”是一个黑盒,对于它的使用者来说:无需关心里面有什么:只关注“容器”能做什么有一套工具来管理黑盒:打包、运

2、输、运行减少了部署单元的数量,从而减少了花销:多个工具聚集在一个“容器”内更容易管理多个环境:以“容器”为单位进行部署和管理容器的核心技术容器核心技术——NamespaceNamespace命名空间Linux的命名空间机制提供了以下6种不同的命名空间,包括CLONE_NEWIPC、CLONE_NEWNET、CLONE_NEWNS、CLONE_NEWPID、CLONE_NEWUSER、CLONE_NEWUTS,通过这6个选项我们能在创建新的进程时设置新进程应该在哪些资源上与宿主机器进行隔离。因此容器只能感知内部的进程,而对宿主机和其他容器一无所知。这6项资源隔离分别对应6种系统调用,

3、通过传入上表中的参数,调用clone()函数来完成。容器核心技术——ControlGroups每一个CGroup都是一组被相同的标准和参数限制的进程,不同的CGroup之间是有层级关系的,也就是说它们之间可以从父类继承一些用于限制资源使用的标准和参数。可限制进程组使用的资源(Resourcelimiting):比如memory子系统可以为进程组设定一个memory使用上限,进程组使用的内存达到限额再申请内存,就会触发OOM(outofmemory)(outofmemory)进程组的优先级控制(Prioritization):比如可以使用cpu子系统为某个进程组分配cpushare 

4、记录进程组使用的资源量(Accounting):比如使用cpuacct子系统记录某个进程组使用的cpu时间进程组隔离(Isolation):比如使用ns子系统可以使不同的进程组使用不同的namespace,以达到隔离的目的,不同的进程组有各自的进程、网络、文件系统挂载空间进程组控制(Control):比如使用freezer子系统可以将进程组挂起和恢复容器核心技术——UnionFSUnionFS是一种为Linux操作系统设计的用于把多个文件系统『联合』到同一个挂载点的文件系统服务。AUFS作为联合文件系统,它能够将不同文件夹中的层联合(Union)到了同一个文件夹中,这些文件夹在AU

5、FS中称作分支,整个『联合』的过程被称为联合挂载(UnionMount)每一个镜像层或者容器层都是/var/lib/docker/目录下的一个子文件夹;在Docker中,所有镜像层和容器层的内容都存储在/var/lib/docker/aufs/diff/目录中而/var/lib/docker/aufs/layers/中存储着镜像层的元数据,每一个文件都保存着镜像层的元数据,最后的/var/lib/docker/aufs/mnt/包含镜像或者容器层的挂载点,最终会被Docker通过联合的方式进行组装。虚拟化技术与容器技术Whatisdocker?Whyisdocker?Docker架

6、构DockerClient:接收命令和DockerHost进行交互的客户端DockerHost:运行Docker服务的主机DockerDaemon:守护进程,用于管理所有镜像和容器DockerImages/Containers:镜像和容器实例Registry(Hub):镜像仓库用户是使用DockerClient与DockerDaemon建立通信,并发送请求给后者。DockerDaemon作为Docker架构中的主体部分,首先提供DockerServer的功能使其可以接受DockerClient的请求。DockerEngine执行Docker内部的一系列工作,每一项工作都是以一个Jo

7、b的形式的存在。Job的运行过程中,当需要容器镜像时,则从DockerRegistry中下载镜像,并通过镜像管理驱动Graphdriver将下载镜像以Graph的形式存储。当需要为Docker创建网络环境时,通过网络管理驱动Networkdriver创建并配置Docker容器网络环境。当需要限制Docker容器运行资源或执行用户指令等操作时,则通过Execdriver来完成。Libcontainer是一项独立的容器管理包,Networkdriver以及Execdriv

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。