章節
- 我為什麼要用 Docker?
- Docker 的初步認識。(本篇文章)
- Docker Hello World。
- Docker Services。
- Docker Swarm。
- Docker Stack。
Docker 的官方文件就列出下圖來說明 Docker 是什麼?
https://docs.docker.com/get-started/
我在第一次看到這張圖片的時候,冒出以下幾個問題:
- 什麼是 Hypervisor?它的作用什麼?
- 這圖片要傳達什麼意思?
接下來回答這幾個問題:
Q1:什麼是 Hypervisor?它的作用什麼?
就我的理解它是模擬軟體,每個作業系統安裝的時候,都會預期有某些硬體規格,比如 CPU 家族(x86, ARM),幾個硬碟(介面是什麼),鍵盤、滑鼠等等的硬體。Hypervisor 就是負責模擬出這些硬體環境,讓作業系統可以正常安裝。所以才可以看到上圖,一台 PC 其實可以安裝多個作業系統。
Q2:這圖片要傳達什麼意思?
可以看到右邊並沒有 Hypervisor,取而代之的是 Docker,另外看到右邊都不再有 Guest OS,這就是 Docker 一直強調的「Lightweight」。因為作業系統比較吃資源,Docker 跑自己的應用程式的時候不再需要作業系統,而是由 Docker 幫我們代勞,幫我們把應用程式跑起來。
其實要把自己應用程式用 Docker 跑起來,主要是牽涉到以下幾個步驟:
- 在 Linux 下安裝 Docker。
- 將自己的應用程式包成 Image。
- 將 Image 上傳到 Docker Hub。(其實也可以放到其它地方)
- 在 Linux 下 docker 指令將應用程式跑起來。
往後更新應用程式的時候,要重複做 2 ~ 4 的步驟。
結論
Docker 和虛擬機(VM) 的運作不同,VM 是必須要自己安裝作業系統,並且設定應用程式的環境(安裝應用程式相關的套件);但是 Docker 並不需要做這些,變成是在作業系統上安裝 Docker,再用 docker 相關指令將應用程式啟動。