Docker与微服务实战
文章目录
- Docker与微服务实战
- 1 基础篇 【零基小白】
- 1 Docker简介
- 1.3 Docker 是什么?
- 1.3.1 一句话
- 1.4 容器与虚拟机比较
- 1.4.1 容器发展简史
- 1.4.2 传统虚拟机 技术
- 1.4.3 容器虚拟机技术
- 1.4.4 对比
1 基础篇 【零基小白】
1 Docker简介
1.3 Docker 是什么?
1.3.1 一句话
Docker 是解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
1.4 容器与虚拟机比较
1.4.1 容器发展简史
光盘 → 卡带机 → 虚拟机 → Docker
1.4.2 传统虚拟机 技术
虚拟机(virtual machine)就是带环境安装的一种解决方案。
它可以在一种操作系统里面运行另一种操作系统,比如在Windows10系统里面运行Linux系统CentOS7。应用程序对此毫无感知,因为虚拟机看上去跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对其他部分毫无影响。
这类虚拟机完美的运行了另一套系统,能够使应用程序,操作系统和硬件三者之间的逻辑不变。
Win10 → VMWare → CentOS7 → 各种cpu、内存网络额配置+各种软件 → 虚拟机实例
传统虚拟机技术基于安装在主操作系统上的虚拟机管理系统(如:VirtualBox和vMWare等),创建虚拟机(虚拟出各种硬件),在虚拟机上安装从操作系统,在从操作系统中安装部署各种应用。
虚拟机 的缺点:
- 资源占用多
- 冗余步骤多
- 启动慢
1.4.3 容器虚拟机技术
由于前面虚拟机存在某些缺点,Linux发展出了另一种虚拟化技术:
Linux容器(Linux Containers,缩写为 LXC)
Linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件。容器提供的镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的整个过程中,它都具有可移植性和一致性。
Linux 容器不是模拟一个完整的操作系统而是对进程进行隔离。
有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。
Docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统虚拟机则是在硬件层面实现虚拟化。
与传统的虚拟机相比,Docker优势体现为启动速度快、占用体积小。
1.4.4 对比
比较了 Docker 和传统虚拟化方式的不同之处:
- 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;
- 容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
- 每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。