docker容器原理之(解耦与半解耦)

docker容器原理之(解耦与半解耦)

Scroll Down

解耦与半解耦

在这里插入图片描述

解耦与半解耦的原理

软件流程

想要了解解耦与半解耦,需要先知道一个应用启动的流程是什么。
USER通过shell(bash/zsh)发送指令给OS,
OS发送通知lib库准备好运行环境,
lib库准备好通知soft可以运行了,
soft进行操作将指令下发给device执行。

解耦

当我们在同一个操作系统中运行相同的软件程序时,它们会发生冲突。解除耦合则是为一个软件分配一个环境,使其独立运行。
例如手机里的应用分身,还有经常使用的VMware虚拟机也是使用这种方式
当我们想要同时运行多个web服务器时,需要创建两个操作系统,
从指定硬件层面(CPU、MEM、DISK)→安装内核→安装系统→安装lib库→安装device(驱动程序)→安装应用软件

半解耦

使得在同一个环境下可以同时运行两个相同的软件,分担软件服务器的压力。
直接使用物理机上的硬件资源(CPU、MEM、DISK)和kernel(内核)
例如:docker会直接使用系统镜像构建出一个容器,以文件夹的方式存放在操作系统上。
而容器内部的运行环境比如lib库将通过ln -s(软链接)的形式使用。
这样使得应用程序误以为一个文件夹就是一个操作系统。
在这里插入图片描述