美文网首页
第一章 容器技术和Docker 简介

第一章 容器技术和Docker 简介

作者: Shismile | 来源:发表于2019-01-29 19:27 被阅读0次

    在慕课网学习Docker课程,做个笔记。

    一、容器技术的起源、发展

    1.1 虚拟化技术

    在很久以前,想要在线上服务器部署一个应用,首先需要购买一个物理服务器,在服务器安装一个操作系统,然后安装好应用所需要的各种依赖环境,最后才可以进行应用的部署,而且一台服务器只能部署一个应用。

    示意图:


    最开始的服务部署结构

    这个时候服务的特点

    • 部署非常慢
    • 成本非常高
    • 资源浪费
    • 难于迁移和扩展
    • 可能会被限定硬件厂商

    虚拟化技术出现以后,对于上述问题有所改变,虚拟化技术会在本地操作系统之上加多一层 Hypervisor层,Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可以虚拟化硬件资源,例如cpu、硬盘、内存资源等。然后我们可以基于通过虚拟化出来的资源之上安装操作系统,这也就是所谓的虚拟机。

    示意图:


    虚拟化技术出现之后的部署结构

    虚拟化技术特点

    • 单机多应用
    • 每个app独立运行在一个vm里

    虚拟化技术的优点

    • 易于扩展(加物理机或者虚拟机即可,因为虚拟机是可以复制的)
    • 资源池(一个物理机的资源分配到了不同的虚拟机里)
    • 易于云化 (上云 AWS 阿里云等)

    虚拟化的局限性

    • 每一个虚拟机都是一个完整的操作系统,当虚机增多的同时,操作系统本身消耗的资源就会随之增加
    • 开发和运维之间的矛盾
      示意图:


      开发和运维之间的挑战

    开发与运维的环境都比较复杂,而且开发还分前后端以及测试等,在本地进行,运维环境则是基于服务器、云服务器等,这就导致了开发环境和线上环境的差异。所以开发环境与运维环境之间无法达到很好的桥接,在部署上线应用时,依旧需要花时间去处理环境兼容问题。

    基于上面的问题,出现了容器技术

    1.2 容器技术

    容器技术的出现

    容器可以帮我们把开发环境及应用整个打包带走,打包好的容器可以在任何的环境下运行,这样就可以解决开发与运维环境不一致的问题了,所以:
    容器技术解决的问题

    • 解决了开发和运维之间的矛盾(环境不一致,沟通问题等等)
    • 在开发和运维之间搭建了一座桥梁,实现 devops 的最佳解决方案
    什么是容器

    容器的特点

    • 对软件和其依赖的标准化打包
    • 应用之间相互隔离
    • 共享同一个OS Kernel
    • 可以运行在很多主流操作系统上

    1.3 容器与虚拟机的区别

    容器与虚拟机的区别

    容器+虚拟化实现方式


    容器+虚拟化实现方式

    二、Docker 导学

    2.1 Docker 是什么

    Docker 是容器技术实现的一种方式,也是目前最流行的容器技术。

    Docker 官网:

    https://www.docker.com

    docker从1.13x开始,版本分为社区版ce和企业版ee,并且基于年月的时间线形式,当前最新稳定版为17.09 参考:

    http://blog.csdn.net/chenhaifeng2016/article/details/68062414

    Docker是什么

    2.2 Docker 的作用

    Docker能干什么

    2.3 Kubernets 编排工具

    Kubernets

    2.4 Docker + DevOps 流程

    DevOps落地流程

    参考博客:http://blog.51cto.com/zero01/2074284
    感谢慕课
    感谢麦兜搞IT
    感谢 zero菌

    相关文章

      网友评论

          本文标题:第一章 容器技术和Docker 简介

          本文链接:https://www.haomeiwen.com/subject/ohaxsqtx.html