docker中解耦和半解耦的区别是:同一个操作系统中运行相同的软件程序时,解耦会为每一个软件分配一个环境,使其独立运行,而半解耦会在一个环境下同时运行两个相同的软件,分担软件服务器的压力。
本教程操作环境:linux7.3系统、docker-1.13.1版、Dell G3电脑。
软件流程
想要了解解耦与半解耦,需要先知道一个应用启动的流程是什么。
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(软链接)的形式使用。
这样使得应用程序误以为一个文件夹就是一个操作系统。
推荐学习:《docker视频教程》
以上是docker中解耦和半解耦的区别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!