大家好我們今天要來教 Docker 這項技術,什麼是 Docker ? Docker 可以幫助我們做什麼事情 ?
Docker 是一項容器化技術,他可以降低我們在佈署 App 時,讓我們可以有效的分配作業系統資源,降低佈署作業成本,現在讓我們來了解 Docker 要解決的問題
首先我們先來看傳統我們在佈署應用程式時,所遇見的問題,我們來看我們下圖的系統架構,有一台 Host 主機,上面掛著作業系統,而作業系統上面掛著三個應用程式,這時候問題出現,當其中有一個應用程式出現問題,可能連帶影響其他應用程式也跟著出現問題
接下來來看到為了解決一台主機掛載多個應用程式,在傳統上會分成三台主機,上面掛載不同的應用程式,當如果有一個應用程式掛掉時,也不會影響其他主機,但是這樣個資源是高的
接下來來看到為了解決多台主機所耗費的資源,在後來我們改了 VM 模式,可以看到有如下圖,在一台 Host 主機,上面掛載作業系統,在作業系統上面我們掛載一個叫做 Hypervisor,這個東西提供了虛擬化的技術,在這上面我們掛載 VM,在 VM 在上面我們掛載作業系統,而在作業系統掛載我們的應用程式,可以看到雖然我們可以不須像傳統模式一樣,花費的硬體資源這麼高,當如果有一個應用程式出現錯誤時,也不會影響其他應用程式,達到隔離與保護的效過,但是我們每次在佈署一個應用程式時,都在起一個 VM 去做前置作業,在硬體資源上也是滿高的
隨著時代的演進,技術的成長,現在擁有了容器模式,有如下圖我們一樣會有一台 Host 主機,在這主機安裝作業系統,上面會掛載一個東西叫做 Docker Engine,而在 Docker Engine 上我們會掛載不同的容器,而在容器上面會掛載不同的應用程式,然而當如果有一個應用程式出現錯誤時,也不會影響其他應用程式,每個容器是互相隔離的
在傳統模式因為要耗費很多主機資源,所以傳統模式是最高的,而在 VM 模式情況下,所耗費的資源是中,在容器模式運作下所耗費的資源是最低的
接下來我們來統整一下,什麼是 Docker ? Docker 是一種虛擬化技術,那容器化技術是甚麼呢~,容器化技術意思是指,可以讓我們有效分配硬體資源的一項技術,讓我們的應用程式可以彼此隔離