Docker 是一個開源專案,是輕量級的虛擬化技術,可以大量地節約開發、快速建立、測試和部署應用程式,可將你的程式連同環境一起打包。
在了解 Docker 這項技術前,首先要先了解何謂虛擬化。
簡單來說虛擬化要解決的問題就是:讓程式可以在不同硬體上執行時,都以為自己在同一個環境中執行,不再需要擔心環境問題。
目前常見用來比較的虛擬化技術有兩種
前者的代表如 Virtual Box,而後者如 Docker。
虛擬機器(以作業系統為中心)
- 虛擬化的目標:將一個應用程式所需的執行環境打包起來,建立一個獨立環境,方便在不同的硬體中移動。
容器(以應用程式為中心)
- 容器化的目標:改善虛擬機器啟動慢、佔較大記憶體的問題。
特性 | 容器 | 虛擬機 |
---|---|---|
啟動 | 秒級 | 分鐘級 |
硬碟容量 | 一般為 MB | 一般為 GB |
效能 | 接近原生 | 比較慢 |
系統支援量 | 單機支援上千個容器 | 一般幾十個 |
註:映像檔是唯讀的,容器在啟動的時候會自動建立一層可寫層作為最上層。
基本上不消耗額外的系統資源,使得應用的效能很高,同時系統資源消耗更少。
Docker 是由映像檔(Image)、容器(Container)、倉庫(Repository)這三個合成的。
*註:Docker 倉庫的概念跟 Git 類似,註冊伺服器可以理解為 GitHub 這樣的託管服務。
那麼今天就先到這理吧~
感謝各位觀看
下集預告: