docker两条基本理念
Build Ship and Run
- Build(构建镜像) : 镜像是只读模板,包含程序、文件以及运行环境等。
- Ship(运输镜像) :在宿主机和仓库间相互运输。
- Run (运行镜像) :即加载并运行镜像,运行中的镜像就是容器,同一个镜像可以有多个容器。
Build once,Run anywhere
搭建一次,到处能用。三大核心概念
镜像 (Image)
映像是一个只读模板,带有创建Docker容器的指令。容器 (Container)
容器是用镜像创建的运行实例。仓库 (Repository)
集中存放镜像文件的场所为什么docker比虚拟机快
docker有比虚拟机更少的抽象层。
由于docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会比虚拟机有明显的效率优势。docker利用的是宿主机的内核,而不需要加载操作系统OS内核。
当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引导、寻址、加载操作系统内核等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个docker容器只需要几秒钟。docker与虚拟机对比
| | Docker容器 | 虚拟机 | | —- | —- | —- | | 硬件 | 原生硬件 | 虚拟硬件 | | 操作系统 | 与宿主机共享OS | 完整的操作系统 | | 隔离性 | 较差 | 彻底 | | 存储大小 | 镜像小,便于存储与传输 | 镜像庞大(vmdk、vdi等) | | 部署速度 | 快速,秒级 | 较慢,10秒以上 | | 运行性能 | 几乎无额外性能损失 | 操作系统额外的CPU、内存消耗 | | 可移植性 | 轻便、灵活,适用于linux | 笨重,与虚拟化技术耦合度高 | | 资源利用率 | 极高 | 较低 | | 系统支持量 | 单机支持上千个容器 | 一般是几十个 | | 硬件亲和性 | 面向软件开发者 | 面向硬件运维者 |
