在慕课网学习Docker课程,做个笔记。
一、容器技术的起源、发展
1.1 虚拟化技术
在很久以前,想要在线上服务器部署一个应用,首先需要购买一个物理服务器,在服务器安装一个操作系统,然后安装好应用所需要的各种依赖环境,最后才可以进行应用的部署,而且一台服务器只能部署一个应用。
示意图:
最开始的服务部署结构
这个时候服务的特点:
- 部署非常慢
- 成本非常高
- 资源浪费
- 难于迁移和扩展
- 可能会被限定硬件厂商
虚拟化技术出现以后,对于上述问题有所改变,虚拟化技术会在本地操作系统之上加多一层 Hypervisor层,Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可以虚拟化硬件资源,例如cpu、硬盘、内存资源等。然后我们可以基于通过虚拟化出来的资源之上安装操作系统,这也就是所谓的虚拟机。
示意图:
虚拟化技术出现之后的部署结构
虚拟化技术特点:
- 单机多应用
- 每个app独立运行在一个vm里
虚拟化技术的优点:
- 易于扩展(加物理机或者虚拟机即可,因为虚拟机是可以复制的)
- 资源池(一个物理机的资源分配到了不同的虚拟机里)
- 易于云化 (上云 AWS 阿里云等)
虚拟化的局限性:
- 每一个虚拟机都是一个完整的操作系统,当虚机增多的同时,操作系统本身消耗的资源就会随之增加
-
开发和运维之间的矛盾
示意图:
开发和运维之间的挑战
开发与运维的环境都比较复杂,而且开发还分前后端以及测试等,在本地进行,运维环境则是基于服务器、云服务器等,这就导致了开发环境和线上环境的差异。所以开发环境与运维环境之间无法达到很好的桥接,在部署上线应用时,依旧需要花时间去处理环境兼容问题。
基于上面的问题,出现了容器技术
1.2 容器技术
容器技术的出现容器可以帮我们把开发环境及应用整个打包带走,打包好的容器可以在任何的环境下运行,这样就可以解决开发与运维环境不一致的问题了,所以:
容器技术解决的问题
- 解决了开发和运维之间的矛盾(环境不一致,沟通问题等等)
- 在开发和运维之间搭建了一座桥梁,实现 devops 的最佳解决方案
容器的特点:
- 对软件和其依赖的标准化打包
- 应用之间相互隔离
- 共享同一个OS Kernel
- 可以运行在很多主流操作系统上
1.3 容器与虚拟机的区别
容器与虚拟机的区别容器+虚拟化实现方式
容器+虚拟化实现方式
二、Docker 导学
2.1 Docker 是什么
Docker 是容器技术实现的一种方式,也是目前最流行的容器技术。
Docker 官网:
docker从1.13x开始,版本分为社区版ce和企业版ee,并且基于年月的时间线形式,当前最新稳定版为17.09 参考:
Docker是什么http://blog.csdn.net/chenhaifeng2016/article/details/68062414
2.2 Docker 的作用
Docker能干什么2.3 Kubernets 编排工具
Kubernets2.4 Docker + DevOps 流程
DevOps落地流程参考博客:http://blog.51cto.com/zero01/2074284
感谢慕课
感谢麦兜搞IT
感谢 zero菌
网友评论