iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 28
0

用過 Docker 的朋友,應該能理解 Docker Image 就像一個樣板。在要啟動容器時,先指定要用的樣板 (Docker Image),然後選擇性的餵入一些參數或環境變數覆蓋掉樣板預設的設定,這樣我們就可以用同一個樣板,啟動幾個功能接近但有些微差異的容器。

但在容器平台上,樣板的概念要再複雜一點點。

  • 還記得嗎?我們鼓勵在容器裡跑小而美的程式,所以要達成相同功能,可能需要好幾個容器的合作才能達成。所以在容器平台,一個功能通常會由多個容器共同合作提供,所以容器平台上的樣板要能定義多個容器、以及他們合作的方式 (如: docker-compose)
  • 同一應用中的多個容器,可以共享實體資源,如:磁碟空間,容器所需的實體資源和其使用限制也是可以定義在應用的樣板裡
  • 再來,前面講到 self-healing, 高可用性,這些容器平台能帶給應用的加值能力,也是可以讓每個應用額外定義在應用的樣板裡,讓每個應用自行選擇要如何運用這些加值能力

所以容器平台上的樣板,會再多定義一些東西。樣板上也是可以挖幾個洞,讓使用者可以餵入想要的設定。

如同我們希望 Docker Image 和 餵入的設定 組合起來,能夠唯一的定義一個容器。我們也希望 容器平台上的樣板 和 餵入的設定 結合起來,能唯一的定義一個應用所需的環境

其實你之前已經看過一個樣板的範例了,在將這個樣板定義餵入容器平台後,容器平台會根據定義內容產生或分派對應的容器與資源;或者是讓使用者能夠以此樣板為基礎,設定參數(就像之前開jenkins時可以輸入參數)來調整應用的定義。

每個容器平台會有各自的樣板定義方式。

建立及維護樣板是環境/工具提供者在容器平台上最重要的任務之一,另一個重要任務是建立及維護所需的容器映像檔。

註:本系列同步更新在 GitBook


上一篇
為什麼容器應該要是可拋棄的?
下一篇
使用容器平台還要注意哪些地方?
系列文
Container 容器三十問30

尚未有邦友留言

立即登入留言