1-容器化和虚拟化
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化。
1.1 虚拟化
1、在最早的时候,我们想要在线上部署一个应用。我们需要先购买服务器,然后安装操作系统及各种依赖环境,最后进行应用的部署。
2、存在问题
- 部署应用上线应用过程时间非常长
- 购买服务器的花费不菲
- 物理服务器的资源容易浪费
- 迁移和扩展比较困难
3、解决方案:
通过虚拟化技术,可以解决以上问题,虚拟化技术就是在操作系统上多加了一个虚拟化层(Hypervisor),可以将物理机的CPU、内存、硬盘、网络等资源进行虚拟化,再通过虚拟化出来的空间上安装操作系统,构建虚拟的应用程序执行环境,这就是通常说的虚拟机,比如:VMware 、VirtualBox等软件。
4、虚拟化技术的优点
- 提升IT效率,降低运维成本。
- 更快地部署工作负责,提高应用性能。
- 提高服务器可用性,消除服务器梳理剧增情况和复杂性。
5、虚拟机的缺点
- 占用资源较多,性能较差。
- 扩展能力较差,环境迁移能力较差。
因此,结合以上特点,容器化技术诞生了。
1.2 容器化
容器化起源集装箱。集装箱 ——全球物流系统中一个非常重要的发明。在运输之前一次性将货物封装好到集装箱里面,之后的集装箱直接放到卡车、火车、货轮上,而且集装箱是统一标准的,自然容易机械化,因此集装箱的革命,节省了大量的资源、物流成本大大降低。
容器不是模拟一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。
容器特点:
- 容器共享宿主机内核。
- 容器使用内核的功能对进程进行分组和资源限制。
- 容器通过命名空间保证隔离。
- 容器像是轻量级的VM(占用空间更少,速度更快),但不是虚拟机。
容器化和传统虚拟化对比
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程。
而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。
因此容器要比传统虚拟机更为轻便。每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。
2- Docker概述
2.1 什么是Docker
官网地址: http://www.docker.com
文档地址: https://docs.docker.com/
Docker Hub官网: https://hub.docker.com/
1、Docker开源项目背景
Docker是基于Go语言实现的开源容器项目,诞生于2013年年初,最初发起