Docker能做什么?
比较Docker和虚拟机技术的不同:
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件。
- 容器内的应用直接运行在宿主机的上,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了。
- 每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响。
Docker是怎么工作的?
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问。
Docker-Server接收到Docker-Client的指令,就会执行这个命令!
为什么Docker比VM快?
- docker有着比虚拟机更少的抽象层。由于docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。
- docker利用的是宿主机的内核,而不需要Guest OS
GuestOS: VM(虚拟机)里的的系统(OS)
HostOS:物理机里的系统(OS)
当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核,避免引导。加载操作系统内核是个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载GuestOS,返个新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了这个复杂的过程,因此新建一个docker容器只需要几秒钟。