Intro to Docker


What is Docker

Docker 是一個提供開發者可以將 Application(應用程式)打包的技術。除了 Application 本體,Docker 也會將 Application 所需要的 Dependency(相依套件)及 Environment(系統環境)一併包裝,讓 Application 可以在不同的環境下可以正常執行。

Docker 要解決的問題

<aside> 📌

延伸閱讀

What is Docker?

</aside>

Docker 的基礎概念

Image

Image 是一個標準化的套件,其中包含了檔案、執行檔、函式庫以及設定檔,以供一個 Container 正常運行。而一個 Image 有幾個特點:

  1. Immutable:當 Image 被建立起來,其內容就不可以再被變更。如果需要修改內容,就會要建立新版本的 Image。

  2. Layers:Image 是一層層疊加起來的,例如:

    這種作法讓 Image 可以共用重複的 Image 檔。同時,Image 也可以建立在其他的 Image 上。

    image.png

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

image.png

Container

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

  1. Self-contained:每個 Container 都包含了 Application 執行所需要的軟體、套件、設定,而完全不依靠外部的環境。