2、Docker简介及docker组成部分

1、Docker提供了一个容器
      执行命令sudo docker run -i -t ubuntu /bin/bash,便可以进入docker容器内部,执行ls即可查看文件目录,其相当于一个虚拟机。



2、什么是容器
           一种虚拟化的方案
           操作系统级别的虚拟化
           只能运行相同或相似内核的操作系统
           容器依赖于Linux内核特性:Namespace和Cgroups

3、使用容器部署应用VS使用虚拟机部署应用


          1)容器磁盘占用少,虚拟机部署应用不仅要包含a)应用本身和b)应用需要依赖的库,还需要c)安装操作系统;
使用容器部署,只需要包含a)应用本身和b)应用需要依赖的库
          2)容器所需要消耗的内存资源也更少。

4、什么是Docker
    将应用程序自动部署到容器,使用Go语言开发
   
    Docker的目标:a)提供简单轻量的建模方式 b)职责的逻辑分离,实现应用开发部署测试环境与生产环境的一致性
        c)快速高效的开发生命周期,测试、开发使用同样的环境d)鼓励使用面向服务的架构

    Docker的使用场景:a)使用Docker容器开发、测试、部署服务。b)创建隔离的运行环境c)搭建测试环境
                                    d)构建多用户的平台即服务(PaaS)基础设施e)提供软件即服务(SaaS)应用程序f)高性能、超大规模的
                                    宿主机部署。
   

5、Docker的 基本组成
        a)Docker Client客户端
        b)Docker Daemon守护进程
               Docker是 C/S架构的程序 ,Docker的客户端向服务器端(即守护进程)发送请求,守护进程处理完并将结果返回给客户端。
               Docekr客户端访问服务器端即可以是在本地,也可以通过远程来访问。
               Docker客户端执行各种命令;Docker客户端将这些命令发送给守护进程;守护进程执行的结果返回给客户端
           
        c)Docker Image镜像
            Docker镜像是容器的基石,容器基于镜像启动和运行;
            Docker镜像是一个只读的文件系统;boofs引导文件系统;Docker利用联合加载技术在rootfs上加载更多的只读文件系统(add emacs);
            联合加载指一次加载多个文件系统,但在外部看来只能看到一个文件系统,
            它将各层文件系统叠加到一起,让最终的文件系统包含所有底层的文件和目录
            Docker将这样的文件系统称为镜像。
            一个镜像可以放到另一个镜像的底部,位于下面的称为父镜像,最底部的镜像称为基础镜像(rootfs)
               

        d)Docker Container容器
            通过镜像启动,是docker的执行来源,容器中可以执行客户的一个或多个进程;
            镜像是Docker生命周期的构建和打包阶段;容器就是Docker生命周期的启动和执行阶段;
            容器通过镜像启动:会在镜像上添加一个可写层(读写层),我们在Docker中运行的程序就是在这一层执行的。
            当docker第一次启动是,初始的可写层是空的。
            写时复制:如果想修改一个文件,首先会将文件从下层的只读层复制到读写层,该文件的只读版本依然存在,但是已经被该文件
       读写层中的副本所隐藏。
            每个只读镜像层都是只读的,并且永远不会变化。
            当创建一个新容器时,会构建一个镜像栈,如图所示,在最顶层构建一个可写层,这个a)可写层加下b)下面的镜像层以及一些c)配置数据
        就构成了一个容器。

        e)Docker Registry仓库     
            Docker用仓库来保存用户构建的镜像。
            仓库分为公有和私有仓库两种。docker提供的仓库是docker hub
           

       
   
Docker依赖的Linux内核特性
        1、Namespaces 命名空间

        2、Control groups (cgroups)控制组

猜你喜欢

转载自chentian114.iteye.com/blog/2293034