第一章 容器技术和Docker 简介

在慕课网学习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 简介)