前情提要:
開發一個專案時,會使用到各式各樣的套件,再加上每一個人的環境設定可能有些微的不同,因此就可能導致在 A 電腦明明運行成功,但在 B 電腦卻掛點,那 Docker 就是為了解決這個問題誕生的工具,藉由把整個應用程序用固定的環境包起來,使在每一台電腦上都可以成功運行,那今天就會來跟大家分享 Docker 的概念為何!
虛擬機 VS Docker:
以下我們會列舉出此兩特點上面的差異。
- 虛擬化級別:
- 虛擬機:模擬一整個作業系統和硬體環境。
- Docker:只模擬應用程序。
- 資源使用:
- 虛擬機:因為將一整個作業系統還原,因此在資源上面耗費更多。
- Docker:只模擬應用程序,資源上面的消耗更少,並且是共享主機操作系統的資源。
- 啟動時間:
- 虛擬機:因為模擬一整個作業系統,在啟動上更花時間。
- Docker:通常幾秒鐘就可以啟動,因此非常適合快速部署和擴展應用程式。
- 隔離性:
- 虛擬機:提供較高程度的隔離,因為每個虛擬機內部都有自己的操作系統核心,因此適合需要安全性高的應用程式。
- Docker:儘管在操作系統層面進行虛擬化,提供了一定程度上的隔離,但因為共享主機的操作系統內核,因此會有濳在性的安全問題。
- 映像和部署:
- 虛擬機:此映像檔通常較大,部署上會需要較多的時間和儲存空間。
- Docker:此映像檔通常較小,因為只包含應用程式和其依賴的庫。