Docker基本介紹
0517034 羅右喬
什麼是docker?
docker是透過Linux Containers技術,實現「輕量級的作業系統虛擬化」。
註:Linux Containers:is an operating-system-level virtualization method for running multiple isolated Linux systems (containers) (維基百科)
Docker的三大概念:
- 映像檔(Image):映像檔就是一個唯讀的環境模板,可用來建立container。包含了一個完整的作業系統環境與使用者所需的應用程式(EX: nginx)
- 容器(Container):一個獨立的空間,容器間不受彼此影響,可以看成一個簡易版的Linux環境。
- 倉庫(Hub):存放映像檔的地方,可分Public和Private。
(圖源:https://ithelp.ithome.com.tw/articles/10191634)
docker的分類:
- Docker CE: 應用程式開發人員或小型團隊。
- Docker EE: 適合用於企業開發、IT設計團隊等商業應用。
VM和docker的差別:
- VM:
- 額外運行的Guest OS
- 透過Hypervisor管理
- image檔大小落在數GB~數十GB
(圖源:https://www.inwinstack.com/2017/10/13/vm-container-difference/)
- container :
- 沒有額外運行的Guest OS
- 透過Docker容器引擎管理
- image檔最大為數百MB
(圖源:https://www.inwinstack.com/2017/10/13/vm-container-difference/)
使用上的選擇:
- VM:
- 應用程式的管理維護需用到系統底層的資源
- 必須建構在不同的作業系統上
- container :
- 其餘大部分情況(EX: 多人多工、程式需在不同環境執行)