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中文網其他相關文章!