1 docker run 运行流程图
2 底层原理
2.1 Docker是怎么工作的?
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问!
Docker-Server接收到Docker-Client的指令,就会执行这个命令!
2.2 为什么Docker比Vm快
-
docker有着比虚拟机更少的抽象层。
由于docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。
-
docker利用的是宿主机的内核,而不需要Guest OS
GuestOS: VM(虚拟机)里的的系统(OS);
HostOS:物理机里的系统(OS)
Docker 容器 | LXC | VM | |
---|---|---|---|
虚拟化类型 | OS虚拟化 | OS虚拟化 | 硬件虚拟化 |
性能 | =物理机性能 | =物理机性能 | 5%-20%损耗 |
隔离性 | NS隔离 | NS隔离 | 强 |
QoS | Cgroup 弱 | Cgroup 弱 | 强 |
安全性 | 中 | 差 | 强 |
Guest | 全部 | 只支持Linux | 全部 |
可迁移性 | 强 | 弱 | 强 |
因此,当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核,从而避免引导、加载操作系统内核,这是个比较费时费资源的过程;当新建一个虚拟机时,虚拟机软件需要加载GuestOS,这个新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了这个复杂的过程,因此新建一个docker容器只需要几秒钟。
如果对您有帮助,赏口饭吃❤谢谢老板❤