收藏 分销(赏)

Docker技术简介讲解.pptx

上传人:精*** 文档编号:4868335 上传时间:2024-10-16 格式:PPTX 页数:35 大小:217.37KB 下载积分:12 金币
下载 相关 举报
Docker技术简介讲解.pptx_第1页
第1页 / 共35页
Docker技术简介讲解.pptx_第2页
第2页 / 共35页


点击查看更多>>
资源描述
1、Docker技术解决了什么问题?2、Docker之helloworld3、Docker技术基础4、Docker重要概念5、Docker使用步骤及应用方向6、Docker下的开发部署流程DockerDocker基于容器技术的轻量级虚拟化解决方案Docker是容器引擎,把Linux的cgroup、namespace等容器底层技术进行封装抽象(后面会介绍此两种技术),为用户提供了创建和管理容器的便捷界面(包括命令行和API)Docker 是一个开源项目,诞生于 2013 年初,基于 Google 公司推出的 Go 语言实现微软,红帽Linux,IBM,Oracle等主流IT厂商已经在自己的产品里增加对Docker的支持。Google 每周启动超过20亿个容器进行业务服务,于上个世纪90年代已经开始大规模使用容器技术传统的开发部署流程(仅包括纯技术部分):搭建开发环境安装web容器安装数据库分配网络开发测试编码测试安装web容器安装数据库分配网络上线生产搭建开发环境安装web容器安装数据库分配网络开发测试编码测试安装web容器安装数据库分配网络上线生产搭建开发环境安装web容器安装数据库分配网络。版本管理版本管理问题1、资源利用效率低2、单物理机多应用无法有效隔离(进程空间,cpu资源,磁盘)3、运维部署不便4、测试、版本管理复杂5、迁移成本高6、传统虚拟机,空间占用大,启动慢,管理复杂。Docker-轻量级虚拟化容器技术1、秒级启动,秒级停止,空间资源占用极少(几M)2、实现进程级别的隔离3、可在普通服务器上建立上百个docker实例4、加快开发测试部署的速度5、简化版本管理开发和运维的有效隔离一个IT系统应该包含如下几个层次:应用程序运行时平台(bin/framework/lib)操作系统硬件(基础设施)开发人员的主要工作是应用程序的编码、构建、测试和发布,涉及应用程序和运行时平台这两层。而运维人员的工作则涉及从硬件、操作系统到运行时平台的安装、配置、运行监控、升级和优化等工作。docker提供了一种运行时环境,隔离了上层应用于下层操作系统和硬件的关联,使得术业有专攻docker之helloworld1、安装docker 在ubuntu 14.04下 执行一条命令即可安装 apt-get install docker-io2、运行 docker run busybox/bin/echo HelloWorlddocker背后干了什么我们创建了一个容器它拥有:文件系统(基于busybox镜像)网络栈(具有私有网络服务)进程空间自动安装 docker会自动检查本地是否有busybox镜像(一个测试版本的linux系统),如果没有则自动下载并启动通过调用宿主机上的bash启动进程,并打印“Helloworld“Docker 技术基础-NameSpace实现资源隔离1、UTS:主机名隔离2、IPC:进程间通信隔离3、PID:进程树隔离4、NS:挂载点隔离5、NET:网络接入,包括接口的隔离6、USER:将本地的虚拟user-id映射到真实的user-idNameSpace-UTS隔离初始主机名创建一个容器并在容器内设置新的主机名注意这里使用的是LinuxAPI 不是docker执行代码,进入容器检查是否设置为新的主机名Docker的技术基础-CGROUP计算机资源使用上的隔离,通常我们叫做使用限额Resource limitation:限制资源使用,比如内存使用上限以及文件系统的缓存限制。Prioritization:优先级控制,比如:CPU利用和磁盘IO吞吐。Accounting:一些审计或一些统计,主要目的是为了计费。Control:挂起进程,恢复执行进程CGROUP-CPU使用限制1、测试代码2、运行测试代码,会将cpu全部占满3、创建Cgroup cpu限制文件4、设置限额为20%5、将进程放入cpu限额管理6、cpu利用率会减少到20%以内Docker的技术基础-Union文件系统功能类似diff命令,通过分层的方式记录文件的累积变化情况。例如 tomcat,oracle,weblogic镜像都可以共享同一个Linux基础镜像,每一个镜像保存的只是在基础镜像上他们修改的部分Docker的镜像可以非常多,但是每个都很小,而且加载启动非常快。docker的重要概念镜像(image)容器(container)数据卷(volumes)链接(links)仓库(Repository)docker之镜像Docker 的镜像类似虚拟机的快照,但是更轻量例如:一个镜像可以包含一个完整的 Linux 操作系统环境,里面仅安装了 Tomcat或用户需要的其它应用程序镜像可以用来创建容器docker之容器等同于从快照中创建虚拟机容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。镜像#0Linux+tomcat容器#1Linux+tomcat 容器#2Linux+tomcat 容器#2Linux+tomcat 从同一个镜像启动多个容器容器端口映射主机镜像名称:image:01镜像ID:e7fig83jgf8Linux+tomcat镜像名称:image:02镜像ID:v8fkfg8gkdLinux+oracle容器名称:myapp1容器ID:44adg8d9mdfport:8080port:80容器名称:myapp_db容器ID:35gif8jr9fgnhkfport:1521port:1521容器名称:myapp2容器ID:9gjd8jd9gkdh9gport:8081port:80数据卷数据卷是一个可供一个或多个容器使用的特殊目录进程和数据的分离实际保存在容器之外,从而允许你在不影响数据的情况下销毁、重建、修改、丢弃容器可用于数据持久化数据卷的使用,类似于 Linux 下对目录或文件进行 mount。数据卷的共享,可以在多个容器之间共享数据卷主机image:01Linux+tomcatimage:02Linux+oraclemyapp1 port:8080port:80volumes:/data/web/src/myapp/instance01/data/default/volume01/soi-01myapp_db port:1521port:1521volumes:/appdata/var/log/myapp/instance02/data/default/volume02/soi-02app_dev port:8081port:80volumes:/web/src/db/home/imyapp/dev/mydata链接容器的连接(linking)系统是除了端口映射外,另一种跟容器中应用交互的方式在源和接收容器之间创建一个隧道,接收容器可以看到源容器指定的信息Docker 在两个互联的容器之间创建了一个安全隧道,而且不用映射它们的端口到宿主主机上。从而避免了暴露关键系统(如数据库)端口到外部网络上.主机image:01Linux+tomcatimage:02Linux+oracleweb port:8080port:80volumes:/data/var/log/myapp/instance01/data/default/volume01/soi-01myapp_db dbapp:1521port:1521volumes:/appdata/var/log/myapp/instance02/data/default/volume02/soi-02app_dev port:8081port:80volumes:/db/home/imyapp/dev/mydata这里实际上1521端口只有web容器和myapp_db容器是可见的,对其他容器是不可见的。仓库及仓库注册服务器仓库是集中存放镜像文件的场所仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签仓库分为公开仓库(Public)和私有仓库(Private)两种形式push 镜像到仓库,从仓库pull下镜像仓库注册服务Docker仓库注册服务API认证与授权仓库群存储镜像01镜像02.Loggingreporting通知发现搭建简易私有仓库1、在docker中启动一个注册服务2、列出当前仓库中的镜像3、重新标记hello-world镜像4、列出新的镜像5、将新镜像推送到私有仓库6、浏览器列出私有仓库中的镜像7、从当前环境中删除hello-mine 镜像8、尝试启动hello-mine镜像9、尝试从私有仓库下载镜像 以上步骤实现了一个用于测试和开发的简易私有仓库,但是真正的使用环境,要考虑存储,权限控制,仓库日志,快速缓存等重要的问题,具体请看docker手册docker使用步骤创建镜像创建容器在需要时暴露端口,创造卷通过链接将几个容器连接在一起还有更高级的应用,比如创建网桥自行组网等,请参考手册Docker-应用方向1、简化配置 应用配置能够无缝运行在任何平台,将应用环境和底层环境实现了解耦2、代码管道化管理 代码从开发者的机器到生产环境机器进行管道化管理,能够平滑迁移。3、应用隔离 多个应用服务部署在多个Docker中,实现应用之间的解耦4、服务合并 合并多个服务,减少机器占用Docker-应用方向5、快速部署 快速的启动速度,极小空间占用6、开发人员的生产化 能够在单机上搭建分布式集群服务,用以测试在真正生产环境下的代码以Docker为单位的开发部署流程设计Docker仓库群开发(本地)获取镜像开发测试提交仓库测试机(公用)获取镜像验证测试生产机集群获取镜像以docker为单位的开发测试部署流程,简化了环境搭建的步骤,提高了资源利用效率和开发测试部署的速度,降低了迁移的成本部署备份思考问题1、Docker使用的都不是新技术,为什么现在变得流行了?2、哪些环境下适合使用Docker技术,哪些情况下不适合?为什么?3、思考一下,工作中哪些步骤可以用docker技术和思想来提高效率和稳定性?谢谢!
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服