有幾個名詞需要先認識:
- Container: 像置物櫃,放入資料和程式
- Docker: 使用 container 隔離程式、資料的工具
- Docker engine: Docker 軟體,建立、運行容器
- Docker compose: 建立刪除容器,使用定義檔(compose file)搭配up和down來控制
- Kubernetes: 容器的調度工具
- Image(映像檔):像製作container的模具,可以將容器輸出映像檔搬移
- volume(卷宗):儲存空間中的一個切割區域
為什麼要用Docker隔離程式?
- 共用軟體時,如果要更新版本會出事
例如,System A 和 B 都需要用到 Program C,B需要C升級,但A只能執行當前版本 - 透過Docker可以建置多個相同功能的Server
Docker與虛擬化的不同?
- Docker是類OS,非完整OS與主機共用核心,也因此需要用到Linux ->輕量
- 虛擬化是透過軟體來模擬主機,相當於實體主機,例如AWS的EC2

掛載:容器會被丟棄,有些資料需要另外儲存
- 卷宗掛載:Docker Engine管理的空間中建立卷宗,難以直接操作
- 繫結掛載:外部(在os)的目錄或檔案
Docker compose vs Kubernetes
- Kubernetes: 管理多台實體/虛擬主機、多個容器,維持容器理想狀態
- Docker compose: 對一台實體主機、多個容器,建置及刪除
參考資料:圖解Docker & Kubernetes 的知識與使用方法













