Docker 是一個提供開發者可以將 Application(應用程式)打包的技術。除了 Application 本體,Docker 也會將 Application 所需要的 Dependency(相依套件)及 Environment(系統環境)一併包裝,讓 Application 可以在不同的環境下可以正常執行。
<aside> 📌
延伸閱讀
</aside>
Image 是一個標準化的套件,其中包含了檔案、執行檔、函式庫以及設定檔,以供一個 Container 正常運行。而一個 Image 有幾個特點:
Immutable:當 Image 被建立起來,其內容就不可以再被變更。如果需要修改內容,就會要建立新版本的 Image。
Layers:Image 是一層層疊加起來的,例如:
這種作法讓 Image 可以共用重複的 Image 檔。同時,Image 也可以建立在其他的 Image 上。

我們可以透過一個更加貼近生活的例子來看,如果從做甜點的角度來看,Image 會更像是食材,而這是可以被疊加起來的,組成新的食材。

Container(容器)從最簡單得角度來說明,就是一個獨立於 OS 運行的程式