Docker是怎么工作的?
Docker是一个client-server结构的系统,Docker守护进程运行在主机上,然后通过socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。容器是一个运行时环境,就是Docker logo展示的集中箱。
docker的守护进程是什么?
守护进程来自于Linux系统下的一部分,对于不太熟悉Linux系统的我来说,暂时只要知道守护进程是干什么的就可以了,所以写一下我在查阅资料后对守护进程的理解。
守护进程可以理解为进程守护(进程的守护),是用于监控指定的进程,当发现目标进程工作异常时,可以对该目标进程进行控制。如关闭该进程,并重新启动该进程。
守护进程(守护者程序),目标进程(被守护进程)。
一个守护进程可以对多个目标进程进行守护
守护进程的实现机制:
在守护进程中,守护者对目标进程的管理是利用心跳机制实现的。
目标进程会定时向守护者发送报告(发送心跳),表示该目标进程在正常运行,对外提供相应的服务。
当守护者长时间没有收到目标进程发送的报告(心跳),守护者会认为该目标进程运行异常,守护者会对目标进程进行关闭,然后重新启动该目标进程。
Docker为什么比VM运行更快:
Docker有着比虚拟机更少的抽象层,由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源,因此在Cpu、内存利用率上Docker将会在效率上有明显优势。
Docker利用的是宿主机的内核,而不需要Guest OS,因此,当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统,避免了引导、加载操作系统内核这个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载Guest OS,这个新建过程是分钟级别的,而Docker由于直接利用宿主机的操作系统则省略了这个过程,因此新建一个Docker容器只需要几秒钟。