云计算1——初识Docker

    xiaoxiao2021-04-15  50

    一 概述

    个人主机时代——CPU主频的高低和内存的大小;云计算时代——虚拟化技术。

    虚拟化既可以通过硬件模拟来实现,也可以通过操作系统来实现。

    容器虚拟化方案,充分利用了操作系统本身已有的机制和特性,可以实现轻量级的虚拟化,Docker是其中佼佼者。

    二 什么是Docker

    2.1 Docker开源项目

    Docker是基于Go语言实现的云开源项目,全部开源代码均在https://github.com/docker/docker上进行维护,Docker是仅次与OpenStack的最受欢迎的云计算开源项目。

    Docker的主要目标:Build, Ship and Run Any App, Anywhere

    2.2 Linux容器技术

    容器有效的将由单个操作系统管理的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求,与虚拟化相比,这样既不需要指令集模拟,也不需要及时编译。容器可以在核心CPU本地运行指令,而不需要任何专门的解释机制,此外也避免了准虚拟化和系统调用替换中的复杂性。

    Linux容器技术(LXC)借鉴了前人成熟的容器设计理念,基于一系列新的内核特性实现了更具扩展性的虚拟化容器方案,并被集成到了主流Linux内核中,成为了Linux系统轻量级容器技术的事实标准。Docker引擎的基础是Linux容器技术。

    2.3 从Linux容器到Docker

    Docker在LXC基础之上进一步优化了容器的使用体验,提供各种容器管理工具(如分发,版本,移植等),让用户无需关注底层的操作。

    可将Docker容器理解为一种沙盒:每个容器内运行一个应用,不同的容器相互隔离,容器之间也可以建立通信机制,容器的创建和停止都十分快速,容器自身对资源需求十分有限,远远低于虚拟机,有时甚至把容器直接当成应用本身。

    三 为什么要用Docker

    3.1 Docker容器虚拟化的好处

    高效构建应用。通过容器打包应用,若需要迁移应用,只需要在新的服务器上启动需要的容器即可。

    3.2 Docker在开发和运维中的优势

    一次性的创建或配置,任意环境,任意时间运行。具体优势:

    (1)更快速的交付和部署:可使用镜像来快速构建一套标准的开发环境,测试和运维人员可以直接使用相同的环境来部署代码。Docker可以快速创建和删除容器,实现快速迭代。

    (2)更高效的资源利用:它是内核级虚拟化,可以实现更高的性能 ,同时对资源的额外需求很低。

    (3)更轻松的迁移和扩展:Docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑和服务器等。

    (4)更简单的更新管理:Dockerfile只需要小小的配置修改,就可以替代以往大量的更新工作。

    3.3 Docker与虚拟机比较

    (1)Docker容器很快。

    (2)Docker容器对系统资源需求很少。

    (3)学习成本较低。

    (4)工作效率高。

    四 虚拟化与Docker

    虚拟化核心:对资源进行抽象。

    虚拟化目标:在同一个主机上运行多个系统或应用——》提高资源利用率,降低成本,方便管理,容错容灾。

    虚拟化分类:基于硬件的虚拟化(比较少见)和基于软件的虚拟化(应用虚拟化(如wine)和平台虚拟化)。

    平台虚拟化:

    完全虚拟化:模拟完整的底层硬件环境和特权指令的执行过程,如VMware workstation和VirtualBox等。

    硬件辅助虚拟化:如Xen。

    部分虚拟化:针对部分硬件资源虚拟化。

    超虚拟化:如早起的Xen。

    操作系统级虚拟化:内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程,容器相关技术即在这个范畴,Docker也属于该范畴

    Docker和常见的虚拟机方式的不同之处如下所示:

    可见Docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,因此更加轻量级。

    转载请注明原文地址: https://ju.6miu.com/read-671216.html

    最新回复(0)