iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0

學習目標

  • 認識 Docker Image 的概念
  • 認識 Docker Container 的概念
  • 了解 Image 與 Container 之間的關係
  • 學會分辨 Image 和 Container

Image 是什麼?

在 Day 1 有簡單提到 Image(映像檔),它可以理解成建立 Container 時所需要的「模板」。

Image 裡面會包含程式執行需要的檔案、環境與設定,但 Image 本身並不是正在執行的程式。

例如之後想要使用 PostgreSQL,可以先取得 PostgreSQL 的 Image,再透過這個 Image 建立 Container。

可以把它想像成:

PostgreSQL Image
       ↓
   建立 Container
       ↓
PostgreSQL Container

同一個 Image 也可以建立出不只一個 Container。


Container 是什麼?

**Container(容器)**則是透過 Image 建立出來,實際執行的環境。

如果把 Image 想成「蛋糕模具」,Container 就可以想成使用這個模具實際做出來的蛋糕。

Image = 模板
Container = 使用模板建立並執行的環境

Container 可以被啟動、停止或刪除,而原本的 Image 並不會因為 Container 被刪除而一起消失。

因此之後還是可以使用相同的 Image,再建立新的 Container。


Image 與 Container 的差別

Image Container
建立 Container 的模板 Image 建立出的執行環境
本身不會執行 可以啟動與停止
可以重複使用 可以建立多個
類似安裝模板 類似實際執行的程式

兩者最主要的關係可以記成:

Image
  ↓ docker run
Container

使用 Image 建立 Container,是之後操作 Docker 很重要的基本觀念。


一個 Image 可以有多個 Container

同一個 Image 並不是只能使用一次。

例如有一個 PostgreSQL Image,可以建立:

PostgreSQL Image
      │
      ├── PostgreSQL Container 1
      ├── PostgreSQL Container 2
      └── PostgreSQL Container 3

每個 Container 都是獨立執行的,因此可以有不同的設定。

這也是為什麼 Image 比較像「模板」,而 Container 才是實際建立出來的環境。


常見錯誤與修正

  • ❌ Image 就是正在執行的程式 → ✅ 真正執行的是 Container
  • ❌ 一個 Image 只能建立一個 Container → ✅ 同一個 Image 可以建立多個 Container
  • ❌ 刪除 Container 就會刪除 Image → ✅ Container 和 Image 可以分開管理
  • ❌ Image 和 Container 是一樣的東西 → ✅ Image 是模板,Container 是實際執行的環境

今日小挑戰(可交付)

  • [ ] 了解 Image 是什麼
  • [ ] 了解 Container 是什麼
  • [ ] 分辨 Image 與 Container 的差別
  • [ ] 知道 Image 與 Container 之間的關係

DAY2 心得

今天進一步了解了 Image 和 Container 的差別。昨天只知道 Image 可以想成模板,而 Container 是實際執行的環境,今天則更清楚兩者之間的關係。

我覺得一開始最容易搞混的地方,就是會把 Image 和 Container 當成同一個東西。了解之後才知道,其實一個 Image 可以重複建立多個 Container,而且就算 Container 被刪除,原本的 Image 也還可以繼續使用。

把這兩個基本概念弄懂之後,接下來實際操作 Docker 指令時應該會更容易理解每個步驟到底在做什麼。


上一篇
Day 1 - Docker 是什麼?為什麼我要學 Docker?
系列文
Docker 新手村:從容器到 PostgreSQL 的實戰之路2
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言