docker容器技术初探与实践课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《docker容器技术初探与实践课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- docker 容器 技术 初探 实践 课件
- 资源描述:
-
1、Docker容器技术初探与实践容器技术初探与实践 D o c k e r 容器技术初探与实践 目录目录 Docker介绍与原理介绍与原理 Docker基本操作 Docker网络,镜像与仓库Docker实践?目录 D o c k e r 介绍与原理 D o c k e r 基本操作 D o c让我们从虚拟机开始谈起让我们从虚拟机开始谈起 虚拟硬件层 虚拟硬件层 虚拟技术层 物理硬件层?一机多用?资源隔离?资源池化?资源配额限制?资池动态调整?软件定义网络 让我们从虚拟机开始谈起 虚拟硬件层 虚拟硬件层 虚拟技术层 Docker是什么?是什么?Docker是一个构建在LXC基础之上,基于进程的轻量
2、级VM解决方案,实现了 应用程序级别的资源隔离与配额。D o c k e r 是什么?D o c k e r 是一个构建在L X C 基础之上容器容器 vs 虚拟机虚拟机 对比项 运行形态 容器 直接运行在宿主机内核上 虚拟机 运行于hypervisor上 启动速度 快,秒级 慢,分钟级 占用磁盘 小,MB级 非常大,GB级 性能 接近宿主机性能 不超过宿主机70%资源利用率 高,单节点可运行100+级容器 低,一般运行10+级虚拟机 容器 v s 虚拟机 对比项 运行形态 容器 直接运行在宿容器的优势容器的优势 多维隔离 通过程,进程通信,主机名,namespace可隔离进网络,用户组等 环
3、境封装 容器镜像中包含了操作系统所有必需库文件,也可以包含应用运行的中间件与应用本身介质 多重限制 通过内存,磁盘,网络,设备cgroup可实现对cpu,等进行资源限制 层级文件系统 通过可叠加的层次文件系统最终组合成完整镜像。相同的层可共用以节省磁盘资源,降低网络传输消耗 高性能高效率 不通过虚拟化技术就可运行完整系统,运行效率直逼实际机器。单机可轻松运行上百个容器 秒级启动 容器对资源需求很少,启动与停止在数秒之间即可完成 容器的优势 多维隔离 通过程,进程通信,主机名,n a m e s p容器到底是啥?容器到底是啥?namespace?Mount Namespace Pid Names
4、pace Net namespace Ipc namespace Uts namespace User namespace?cgroups UnionFS Blkio Cpu Cpuacct Cpuset Devices Freezer Memory Net_cls 联合文件系统 CNM(Container Network Model)资源隔离 网络 资源限制 Volumes 目录挂载 Container 容器到底是啥?n a m e s p a c e?Mo u n资源隔离资源隔离 Namespace Namespace Mount Namespace UTS Namespace IPC N
5、amespace PID Namespace Network Namespace User Namespace 被隔离的系统资源被隔离的系统资源 文件系统挂载点 隔离效果隔离效果 每个容器能看到不同的文件系统层次结构 Node name 和 domain name 每个容器可以有自己的 hostname 和 domainame 特定的进程间通信资源 每个容器有其自己的 System V IPC 和 POSIX 消息队列文件系统,只有在同一个 IPC namespace 的进程之间才能互相通信 进程ID数字空间 每个 PID namespace 中的进程可以有其独立的 PID;每个容器可以有其
6、PID 为 1 的root 进程;也使得容器可以在不同的 host 之间迁移,因为 namespace 中的进程 ID 和 host 无关了。这也使得容器中的每个进程有两个PID:容器中的 PID 和 host 上的 PID 每个容器用有其独立的网络设备,IP 地址,IP 路由表,/proc/net 目录,端口号等等。这也使得一个 host 上多个容器内的同一个应用都绑定到各自容器的 80 端口上 在 user namespace 中的进程的用户和组 ID 可以和在 host 上不同;每个 container 可以有不同的 user 和 group id;一个 host 上的非特权用户可以成为
7、 user namespace 中的特权用户 网络相关的系统资源 用户和组ID空间 资源隔离 N a m e s p a c e Mo u n t N a m e s p a c e资源限制资源限制 cgroup cgroup 子系统子系统 blkio cpu cpuacct cpuset devices 作用作用 为?块?设?备?设?定?输?入?/输?出?限?制?,比?如?物?理?设?备?(磁?盘?,固?态?硬?盘?,USB 等?等?)使?用?调?度?程?序?提?供?对?CPU 的?cgroup 任?务?访?问?自?动?生?成?cgroup 中?任?务?所?使?用?的?CPU 报?告?为?c
8、group 中?的?任?务?分?配?独?立?CPU(在?多?核?系?统?)和?内?存?节?点?可?允?许?或?者?拒?绝?cgroup 中?的?任?务?访?问?设?备?freezer memory net_cls?起挂?或?者?恢?复?cgroup 中的?任?务?设?定?cgroup 中?任?务?使?用?的?内?存?限?制?,并?自?动?生?成?内?存?资?源使用?报?告?使?用?等?级?识?别?符?(classid)标?记?网?络?数?据?包?,可?允?许?Linux 流?量?控?制?程?序?(tc)识?别?从?具?体?cgroup 中?生?成?的?数?据?包?资源限制 c g r o u
9、p 子系统 b l k i o c p u c p u a联合文件系统联合文件系统UnionFS 联合文件系统(UnionFS)是一种轻量级的高性能分层文件系统,它支持将文件系统中的修改信息作为一次提交,并层层叠加,同时可以将不同目录挂载到同一个虚拟文件系统下,应用看到的是挂载的最终结果。在Docker中使用AUFS(Another Union File System或Advanced Multilayered Unification File System)就是一种联合文件系统。AUFS不仅可以对每一个目录设定只读(Readonly)、读写(Readwrite)和写(Witeout-able
10、)权限,同时AUFS也可以支持分层的机制,例如,可以对只读权限部分逻辑上进行增量地修改而不影响只读部分 Docker目前支持的联合文件系统种类包括AUFS、OverlayFS、btrfs、vfs、zfs和Device Mapper等。联合文件系统U n i o n F S 联合文件系统(U n i o n F S)是Docker容器网络模型容器网络模型CNM Runtime Docker Contianer Network Model(libnetwork)None Bridge Overlayer Plugines 3rd-Native Driver Remote Driver?使用驱动模式
11、为容器创建网络栈?支持多个驱动同时使用?允许容器加入一个或多个网络?如果需要,可以自已定制网络驱动 D o c k e r 容器网络模型C N M R u n t i m e D o c k e rDocker存储挂载存储挂载 容器运行过程中产生的数据,默认就存在容器的临时存储中,会随容器删除而消失。要想将容器运行过程中产生的数据持久保存下来,必须要把这些文件或目录挂载至宿主机上。或者一些需要运行期指定的配置文件,也可以通过卷的方式挂进容器中去。挂载的目标,可以是文件,也可以是目录。/opt/data/opt/configs-v/home/usr1/data/app1:/opt/data vo
12、lume/home/usr1/data/app1 volume-v/opt/configs/app1:/opt/configs/opt/configs/app1 容器 宿主机 D o c k e r 存储挂载 容器运行过程中产生的数据,默认就存在容容器重新定义了应用的边界容器重新定义了应用的边界=应用安装包/介质+中间件安装包+运行环境安装包+安装文档 原来的应用 操作系统(如Centos 7.2)容器=镜像 运行环境 (如 java 1.8)中间件 (如tomcat 7.2)应用介质 (如 hello.War)应用配置 (如 log4j.xml)+容器说明 容器化的应用 环境变量 (如 DB
13、_NAME=hello)对外端口 (如 80-8080)容器重新定义了应用的边界=应用安装包/介质+中间件容器促进了应用交付的标准化容器促进了应用交付的标准化 Engine 基础设施标准化?屏蔽底层抽像?隔离限制资源?软件定义网络?对接多类存储 Image 应用交付标准化?分层文件系统?统一的构建语法?镜像版本化管理?应用资源全包括 Container 运维管理标准化?元子化运行单元?快速创建与销毁?统一编排?统一监控 Registry 分发部署标准化?镜像集中化管理?安全控制?权限管理?应用商店 容器促进了应用交付的标准化 E n g i n e 基础设施标准化?目录目录 Docker介绍与
14、原理 Docker基本操作基本操作 容器网络,镜像与仓库Docker实践?目录 D o c k e r 介绍与原理 D o c k e r 基本操作 容器网Docker的安装的安装?Windows 下载docker-toolbox执行安装。下载地址:http:/ 以centos7为例,root用户使用yum安装:yum-config-manager-add-repo http:/ yum makecache fast&yum-y install docker-ce?Mac 下载docker安装包执行安装。下载地址:https:/ D o c k e r 的安装?Wi n d o w s 下载d
15、 o c k e启动你的第一个容器启动你的第一个容器 以启动一个nginx服务为例:#docker run d p 8080:80 n myng nginx 参数说明:-d -p 以后台方式运行-n 端口映射,宿主机端口:容器端口 nginx 指定容器的名称 nginx:latest镜像名称与。前面为镜像名称,冒号后为镜像tag。此为略写模式,全部应为tag:输出:访问nginx服务(宿主机地址为 10.15.15.74):启动你的第一个容器 以启动一个n g i n x 服务为例:#d o更多更多docker run参数参数?-a stdin:指定标准输入输出内容类型,可选 STDIN/ST
16、DOUT/STDERR 三项;?-d:后台运行容器,并返回容器ID;?-i:以交互模式运行容器,通常与 -t 同时使用;?-p:端口映射,格式为:主机(宿主)端口:容器端口?-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;?-name:为容器指定一个名称;?-dns:指定容器使用的DNS服务器,默认和宿主一致;?-dns-search:指定容器DNS搜索域名,默认和宿主一致;?-h:指定容器的 hostname;?-e username=ritchie:设置环境变量;?-env-file=:从指定文件读入环境变量;?-cpuset=0-2 or-cpuset=0,1,2:绑定容器到
17、指定CPU运行;?-m:设置容器使用内存最大值;?-net=bridge:指定容器的网络连接类型,支持 bridge/host/none/container/自定义网络:5种类型;?-link=:链接到另一个容器;更多d o c k e r r u n 参数?-a s t d i n:指定标准容器常用操作容器常用操作 查看所有运行中的容器#docker ps 查看所有容器#docker ps-a 查看容器的日志#docker logs 容器名称或容器id 停止容器#docker stop 容器名称或容器id 启动容器#docker start 容器名称或容器id 重启容器#docker res
18、tart 容器名称或容器id 删除容器(强制加 f)#docker rm 容器名称或容器id 在容器中执行某个命令#docker exec 容器名称或容器id 命令 进入容器内部(control+d退出)#docker exec-it 容器名称或容器id bash 查看容器的详细信息#docker inspect 容器名称或容器id 从宿主机往容器中复制数据#docker cp 宿主机目录 容器名称或容器id:容器目录 将数据从容器中复制至宿主机#docker cp 容器名称或容器id:容器目录 宿主机目录 容器常用操作 查看所有运行中的容器#d o c k e r p s 镜像常用操作镜像常
展开阅读全文