黑马程序员技术交流社区

标题: 【郑州校区】学成在线-第20天-讲义-DevOps 三 [打印本页]

作者: 我是楠楠    时间: 2020-1-15 14:56
标题: 【郑州校区】学成在线-第20天-讲义-DevOps 三
【郑州校区】学成在线-第20天-讲义-DevOps 三

3 Docker
3.1 虚拟化技术
3.1.1 问题描述
互联网的发展使软件业发生了巨大的变化,其中一个显著的变化是软件的规模越来越大,基于微服务架构的软件在
生产部署时遇到了这样的挑战:
1、微服务的开发语言、操作系统、依赖库等环境配置不同,如何快速安装、迁移、配置软件?
2、一个软件由若干微服务组成,如何快速批量部署微服务?
3、如何有效的利于计算机资源?
针对前两个问题的思考:
传统的软件部署流程是:安装操作系统-->安装依赖软件/-->安装软件(微服务)-->配置软件-->最终软件上线运
行,面对大量的微服务及微服务集群,使用此方案不仅效率低下,而且还可能会出现环境兼容问题,显然此方案不
适合用在微服务部署。
设想:如果有一项技术可以快速的将软件及所需要的各种环境配置打包、批量复制将会解决以上问题。
针对第三个问题的思考:
在一台计算机只安装一个微服务对计算机资源极大的浪费,如果安装多个微服务就可以有效的利于计算机资源,但
是对于批量软件的安装部署还是会面临12问题。
设想:在一台计算机安装多个微服务,使用一种技术将微服务打包、复制部署,并且微服务之间隔离互不影响。
3.1.2 虚拟化技术
引用百度百科(https://baike.baidu.com/item/%E8%99%9A%E6%8B%9F%E5%8C%96/547949



在服务器(宿主机)上安装操作系统,并安装hypervisor虚拟机管理软件,如VMwareVirtualBox等,由
hypervisor管理多个虚拟机,每个虚拟机上需要安装客户操作系统、依赖库、应用软件。
2Containers容器化技术


容器技术中docker引擎取代了hypervisordocker引擎是运行在住宿操作系统上的一个进程,该进程管理了多个
docker容器,每个docker容器集成了应用软件、依赖库,容器之间相互隔离。
3、技术对比:
资源占用:
虚拟机由于是独立的操作系统,占用资源比docker多。
启动速度:
虚拟机包括操作系统,启动虚拟机相当于启动一个操作系统,容器则不一样,容器中只包括操作系统的内核,启动
一个容器实例相当于启动一个进程,容器的启动速度比虚拟机快。
体积:
容器包括操作系统内核、软件及依赖库,虚拟机不仅包括软件和依赖库还将完整的操作系统打包进去,虚拟机的体
积比容器大的多。
3.1.3 Docker介绍
引用百度百科(https://baike.baidu.com/item/Docker



1Docker daemonDocker守护进程): Docker守护进程是部署在操作系统上,负责支撑Docker Container
运行以及本地Image的管理。
2Docker client: 用户不直接操作Docker daemon,用户通过Docker client访问DockerDocker client提供
pullrun等操作命令。
3Docker ImageDocker 镜像就是一个只读的模板。 例如:一个镜像可以包含一个完整的 ubuntu 操作系统环
境,里面仅安装了 Tomcat或用户需要的其它应用程序。 镜像可以用来创建 Docker 容器。 Docker 提供了一个很
简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使
用。
4Docker ContainerDocker 利用容器来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停
止、删除。每个容器都是相互隔离的、保证安全的平台。打个比方,镜像相当于类,容器相当于对象。
5Docker RegistryDocker 仓库分为公开仓库(Public)和私有仓库(Private)两种形式 最大的公开仓库是
Docker Hub,存放了数量庞大的镜像供用户下载。 用户也可以在本地网络内创建一个私有仓库。 当用户创建了自
己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时
候,只需要从仓库上 pull 下来就可以了。







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2