Docker基础(底层原理)
四、Docker运行底层原理
4.1Docker是怎么工作的
Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器,容器是一个运行环境,就是docker图标上的集装箱
4.2Docker为什么比VM快
- Docker有着比虚拟机更少的抽象层。由于docker不需要Hypervisor
虚拟机监视器,是用来建立与执行虚拟机器的软件、固件或硬件。提供虚拟的作业平台来执行客体操作系统(guest operating systems),负责管理其他客体操作系统的执行阶段;这些客体操作系统,共同分享虚拟化后的硬件资源。
实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。 - Docker利用的是宿主机的内核,而不需Cuest OS
客体操作系统
。因此,当新建一个容器时,docker不需要和虚拟机一样的重新加载一个操作系统内核。仍而避免引寻、加载操作系统内核反个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载Guest OS,返个新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返个过程,因此新建一个docker容器只需要几秒钟。
Docker容器 | 虚拟机(VM) | |
---|---|---|
操作系统 | 与宿主机共享OS | 宿主机OS上运行虚拟机OS |
存储大小 | 镜像小,便于存储和传输 | 镜像庞大(vmdk\vdi)等 |
运行性能 | 几乎无额外性能损失 | 操作系统额外的CPU、内存消耗 |
移植性 | 轻便、灵活,适应于Linux | |
硬件亲和性 | 面向软件开发者 | 面向硬件运维者 |
部署速度 | 快速,秒级 | 较慢,10s以上 |