docker学习

大家知道docker是什么吗?  为什么要学习docker,它能给工作带来什么好处,下面我就来给大家讲讲我所了解和知道的!

(1)公司里面有开发人员,例如开发web系统,租赁系统等等。。,WEB系统部署到Linux服务器,部署时间长的话要1-2周,调试完毕,WEB系统对外发布;

(2)需要把WEB 系统/APP 各种代码、软件、依赖关系,部署线上Linux服务器,Docker技术可以将WEB系统打包镜像,类似于ISO镜像文件,镜像文件移植到其他Linux系统

在聊聊虚拟化技术:

         虚拟化技术:通俗的来说,虚拟化就是把物力资源转变为逻辑上可以管理的资源,以打破物理结构间的壁垒,计算元件运行在虚拟的基础上而不是真实的基础上,可以扩大硬件的容量,简化软件的重新配置过程。

        允许一个平台同时运行多个操作系统,并且应用陈谷都可以在相互独立的空间内运行而不受影响,从而显著提高计算机的工作效率,是一个为了简化管理,优化资源的解决方案。

       目前主流的虚拟化技术有:KVM、Xen、VMware Esxi ViretualBox、Docker,虚拟化技术来越来越广泛的应用在企业中。

虚拟化概念: 

     虚拟机和虚拟化有什么区别呢?

             大家都知道 vmware workstation 虚拟机,一个硬件设备平台,基于平台划分更多的虚拟资源,单台物理机虚拟更多的虚拟机,实现网站的发布。 虚拟化和虚拟机差不多 也具备虚拟机的功能但是还有很大区别,虚拟化技术具有计算元件,资源申请调度到其他硬件服务器,然后在其他硬件服务器上面虚拟资源。

给大家举个最简单的例子,大家都用过 阿里云 ,腾讯云吧:

         阿里云、腾讯云 都是虚拟化 你去申请一个阿里云主机只需要提交一个CPU、内存、硬盘、网卡、带宽的需求,然后提交到后端硬件服务器上,通过计算元件实现资源调度,你会发现阿里云从来没发现资源不够。例如 阿里云有10000台物理机每台物理机配置都是非常高的,64C 256G 硬盘可以是分布式存储,当发现某一台物理机资源不够了计算元件会分析调度,实现资源分配。

       虚拟化原理:虚拟化解决方案的底部是要进行虚拟化的物理主机,这台机器 可能直接支持虚拟化,也可能不会直接支持虚拟化,那么就需要系统的管理程序层的支持。系统管理程序或者称为 VMM,可以看做是平台硬件和操作系统的抽象化。在某些情况中,这个系统管理程序就是一个操作系统;此时, 它就称为主机操作系统。

    虚拟化技术分类:

        1)完全虚拟化技术: 实际上是通过软件实现对操作系统的资源再分配,比较成熟,例如我们的KVM,virtualBox;

        2)半虚拟化技术 :    是通过代码修改已有的系统,形成一种新的可虚拟化的系统,调用硬件资源去安装多个系统,整体速度上相对高一点,代表产品有 Xen。

        3) Docker技术(介于完全虚拟化、半虚拟化之间),轻量级虚拟化;

下面开始讲解Docker,啰嗦了一大堆下面才是正题 ,嘿嘿

   Docker技术:

         Docker技术类似于集装箱,最早集装箱没有出现的时候,码头上面有许多搬运工人在搬运货物,集装箱出现以后,码头上看到更多的不是工人了,而且集装箱的搬运模式更加单一,更加高效,还有其他的好处。

         例如: 货物多打包在集装箱里面,可以防止货物之间相互影响。并且到了另外一个码头需要转运的话,有了再集装箱以后,直接把它运送到另一个容器内即可,完全可以保证里面的货物是整体搬迁,并且不会损害货物本身。

         Docker LXC 及 Cgroup

         Docker 最早为 LXC+AUFS 组合,LXC负责资源管理,AUFS负责镜像管理,而LXC包括 cgruop、namespace、chroot等组件、并通过cgroup进行资源管理。

         

       

       从资源管理来看,Docker、LXC、Cgroup三者的关系是:Cgroup在最底层落实资源管理,LXC 在cgroup 上封装了一层,Docker又在LXC封装了一层。

       docker可以看做是LXC的替代品。

        docker可以实现资源隔离

        Cgroup 是 Linux内核提供的一种可以限制、隔离、记录进程组所使用的物理资源的机制。

        Docker 虚拟化技术需要什么东西:

        镜像:模板,docker 虚拟化基于系统、程序、静态的、不能修改的、可有读取的 不能写入

        容器:称为docker 虚拟机、基于镜像运行的实体,简单一句话 镜像文件跑起来就是容器了。

        仓库:仓库是存放镜像的地方。一般分为公共仓库,私有仓库(公司内部的)。

    docker虚拟化和传统虚拟化相比的好处是: 

            docker虚拟化 直接虚拟APP ,例如docker上面跑一个NGINX,他不需要先虚拟一个操作系统,在布置一个操作系统。传统的虚拟化需要先在VMM启动一个虚拟机在虚拟机里面在跑NGINX性能方面肯定要降低很多。

           docker技术:NGINX镜像-NGINX 容器-对外访问 客户访问ip就能访问NGINX了。

      总结docker虚拟化直接虚拟APP 传统的不可以。

       

  

             

原文地址:https://www.cnblogs.com/394510636-ff/p/8832142.html