zoukankan      html  css  js  c++  java
  • 没用过docker就out了

    什么是docker?

    Docker使用Google公司推出的Go语言进行开发实现;
    docker是linux容器的一种封装,提供简单易用的容器使用接口。是最流行的Linux容器解决方案;接口相当简单,用户可以方便的创建和销毁容器;
    docker将应用程序与程序与程序的依赖,打包在一个文件里面,运行这个文件就会生成一个虚拟容器;程序运行在虚拟容器里,如同在真实物理机上运行一样,有了docker就不用担心环境问题了。
    

    为什么使用docker?

    以前的服务器部署的缺点:
        1.部署非常慢;
        2.成本非常高;
        3.浪费资源;
        4.难于迁移和扩展;
        5.可能会被限定硬件厂商。
    由于物理机的诸多问题,后来出现了虚拟机:
        1.一个物理机可以部署多个app;
        2.每个app独立运行在一个VM中;
        但是虚拟化也是有局限性的,每一台虚拟机都是一个完整的操作系统,要分配系统资源,虚拟机多到一个程度时,操作系统本身资源也会消耗殆尽,或者必须扩容docker

    docker与虚拟机的比较

    特性 docker 虚拟机
    启动 秒级 分钟级
    硬盘使用 一般为MB 一般为GB
    性能 接近原生
    系统支持量 单机支持上千个容器 一般几十个

    虚拟机解决环境配置的问题

    它可以在一种操作系统里面运行另一种操作系统,比如在Windows中运行Linux系统。应用程序对此毫无感知,因为虚拟机看上去和真实系统一样,对于windows来说,虚拟机就是一个普通的文件,不需要就可以删掉,对其他毫无影响。
    虽然虚拟机可以还原软件的原始环境,但依然有几个缺点:
        1.资源占用多,虚拟机会独占一部分内存和硬盘空间。它运行的时候,其他程序就不用使用这些资源了。假如虚拟机里面运行的程序只有1MB,依然会需要几百MB的内存才能运行;
        2.冗余步骤多,虚拟机是完整的操作系统,一些系统级别的操作步骤往往无法跳过,比如用户登录;
        3.启动慢,启动操作系统需要多久,启动虚拟机就需要多久。 

    docker容器解决环境配置的问题

    用上docker容器后,可以实现开发,测试和生产环境的统一化和标准化。
    镜像作为标准的交付件,可以在开发,测试和生产环境上以容器来运行,最终实现三套环境上的应用以及运行所依赖内容的完全一致。
    Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离。在正常进程的外面套了一个保护层,对于容器里面的进程来说,它接触的资源都是虚拟的,从而实现和底层的隔离。
    (1)启动快,容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本季的一个进程,而不是启动一个操作系统,速度就快很多;
    (2)资源占用少,只占需要的资源,容器还可以共享资源,虚拟机都是独享资源;
    (3)体积小,容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包。容器有点像轻量级的虚拟机,能够提供虚拟化的环境,但是成本开销小的多。
    

    docker容器的优势

    更高效的利用系统资源;
    更快速的启动时间;
    一致的运行环境;
    持续交付和部署;
    更轻松的迁移。
    

    docker的三大概念

    docker镜像(image)

    docker镜像就是一个只读的模版。
    例如:一个镜像可以包含一个完整的CentOS操作系统环境,里面仅安装Apache或用户需要的其他的程序。
    镜像可以用来创建docker容器。
    docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户可以直接从别人那里下载一个已经做好的镜像来直接使用。

      image的分层存储

    因为镜像包含完整的root文件系统,体积是非常庞大的,因此docker在设计时按照Union FS的技术,将其设计为分层存储的架构。
    镜像不是IOS那种完整的打包文件,镜像只是一个虚拟的概念,不是一个完整的文件,而是一组文件构成或者多组文件系统联合构成。
    

    docker容器(container)

    镜像和容器的关系,就像面向对象编程设计中的类和实例一样,镜像是静态的定义(class),容器是镜像运行时的实体(object)。
    容器可以被创建,启动,停止,删除,暂停。
    docker利用容器来运行应用。
    容器是从镜像创建的运行实例,每一个容器都是相互隔离的,保证安全的平台。
    *镜像是只读的,容器在启动的时候创建一层可写层作为上层。
    

    docker仓库(repository)

    仓库是集中存放镜像文件的场所,有时候把仓库和仓库注册服务器(registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放多个仓库,每个仓库里包含多个镜像,每个镜像有不同的标签(tag)。
    仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
    最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括Docker Pool等,可以提供大陆用户更稳定快读的访问。
    当用户创建了自己的镜像之后就可以使用push命令将它上传到公有或者私有仓库,这样下载在另外一台机器上使用这个镜像时候,只需需要从仓库上pull下来就可以了。
    *Docker仓库的概念跟Git类似,注册服务器可以理解为GitHub这样的托管服务。
    

    CentOS安装docker

    1.卸载旧版本
    sudo yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-selinux 
                      docker-engine-selinux 
                      docker-engine
    
    2.设置存储库
    sudo yum install -y yum-utils 
      device-mapper-persistent-data 
      lvm2
    
    sudo yum-config-manager 
        --add-repo 
        https://download.docker.com/linux/centos/docker-ce.repo
    
    3.安装docker社区版
    sudo yum install docker-ce #docker有两个版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。
    4.启动关闭docker systemctl start docker

    docker镜像加速器

    https://www.daocloud.io/mirror#accelerator-doc
    
    https://www.cnblogs.com/pyyu/p/6925606.html
    #一条命令加速
    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://95822026.m.daocloud.io
    

      

     

  • 相关阅读:
    jquery事件之事件委托和事件切换
    jquery事件之事件处理函数
    jquery动画效果
    jquery筛选元素函数
    jquery操作DOM
    jquery对css操作
    jquery属性操作
    Jquery选择器(三)
    Jquery选择器(二)
    Jquery选择器(一)
  • 原文地址:https://www.cnblogs.com/liuqingyang/p/10696574.html
Copyright © 2011-2022 走看看