什么是虚拟机
虚拟机(virtual machine)就是带环境安装的一种解决方案,它可以在一种操作系统里面运行另一种操作系统。
虚拟机缺点
- 资源占用多
- 启动慢
- 冗余步骤多
什么是容器
Linux容器 是 Linux 发展出的一种虚拟化的技术。Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。
比较容器和 虚拟机的技术不同
- 传统的虚拟机,虚拟出一套硬件,运行一个完整的操作系统。在这个系统上安装和运行软件
- 容器内的应用直接运行在宿主机的内核中,容器没有自己的内核,也没有虚拟我们的硬件,所以就轻便了。每个容器间是隔离的,每个容器内都有属于自己的文件系统,互不影响。
Docker 为什么比 虚拟机 快
GuestOS: VM(虚拟机)里的的系统(OS);
HostOS:物理机里的系统(OS);
- docker有着比虚拟机更少的抽象层。由于docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。
- docker利用的是宿主机的内核,而不需要Guest OS。
因此,当新建一个 容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。仍而避免引导、加载操作系统内核返个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载GuestOS,返个新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了这个复杂的过程,因此新建一个docker容器只需要几秒钟。
容器的优点
- 文件系统隔离
- 网络隔离
- 进程号隔离
- 进程间通信隔离
什么是Docker
- Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。
- 可以理解为:Docker 是linux 容器技术的一个管理引擎。
Docker 目标
- 提供简单轻量的建模方式
- 职责的逻辑分离(开发和运维的分离)
- 快速高效的开发生命周期(减少额外调试和部署的开销)
- 鼓励使用面向服务的架构(分布式)
Docker的使用场景
- 使用Docker容器开发、测试、部署服务
- 创建隔离的运行环境
- 搭建测试环境
- 构建多用户的平台即服务(Paas)基础设施
- 提供软件即服务(Saas)应用程序
- 高性能、超打规模的主机部署
Docker 应用的组成
Docker客户端(客户端命令)
- 客户端是:C/S架构
守护进程(Docker主应用)
- 守护进程处理Docker的命令,并返回客户端
- 本地或者远程的Docker
Docker 资源概念
镜像(image)
Docker 镜像,就好比一个模板,可以通过模板创建容器服务。通过镜像可以创建多个容器。最终服务(项目)是在容器中运行。
- Docker 容器的基石,基于镜像启动和运行
- 层叠的只读文件系统
- 最低端是 引导文件系统 和 Bootfs
- rootfs
- 联合加载
容器(Container)
Docker 利用容器技术,独立运行一个或者一组应用。通过镜像来创建的,容器可以启动、停止、删除。
- 容器是docker的执行单元
- 通过镜像启动
- 写时候复制
镜像仓库
Docker镜像仓库用于保存镜像,分为私有和公有,仓库例如:Docker Hub、阿里云、网易云、华为云。