iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0
自我挑戰組

淺嚐 Docker:新手莫慌、漫乘鯨魚系列 第 3

Day 3: 什麼是容器 Container

  • 分享至 

  • xImage
  •  

前言

前面講了 Server 的概念,並介紹了 Docker 本人,今天我們開始詳細介紹 Docker 最重要的東西:容器 Docker。

提供服務

容器會依照自己內部環境所裝載的應用程式,提供相對應的服務。當這個容器裡含有寄送信件的應用程式,那這個容器就是負責提供寄送信件的服務。就像第一天提到的 Server 是一樣的概念。

一個容器提供一種服務,當然在一個容器內裝載兩種應用程式、提供兩種服務,但這樣就有違容器想要達到的隔離環境的概念。

隔離環境

當我們在開發時,都會遇到小至套件、大至應用程式,各自的運作都會牽扯到對彼此的相依。

A 程式的運作,需要 1.3.5 版本的 B 程式,而 C 程式也需要 1.3.5 版本的 B 程式,整個系統由 A、B、C 三個程式的運作所建構而成。

如果今天 B 程式更新 2.0.1 版本,而 A 跟 C 程式因仍未升級,導致他們還是需要 1.3.5 版本的 B 程式時,系統就會異常,在這個例子中,或許我們把 B 程式退回 1.3.5 版本就解決問題了。

但假如 A 程式也升級了,而新的 A 需要 2.0.1 版本的 B,但 C 還沒跟上時,怎麼辦?那是不是就都不要升級了,大家都等來等去!?

我們可以把容器想像成一個箱子,裡面裝載著提供服務的應用程式,每個應用程式在各自的箱子裡可以正常運行,不用你看我我看你、確認過彼此的眼神後,才彼此 say yes,這就是容器最主要的特性,隔離環境,讓應用程式不需要互相依賴,我不再因你而活、而你也能獨立堅強。

就拿上述 A、B、C 程式為例,如果今天把 A、B、C 程式都做成容器,那就會有三個容器,這三個容器各自承載 A、B、C 應用程式,互相聯繫,但互不影響。

A 容器壞了,B、C 仍會持續運作; B 容器的應用程式升到 2.0.1 版本,A 與 C 也不會有依賴 B 版本的問題。這是因為產生 A、B、C 容器的映像檔,本身已經處理了各自容器所需要的套件等等,才讓容器化應用程式可以擁有隔離環境。

結論

剛開始接觸 Docker 容器,多少都會覺得很抽象或是很模糊,這是正常的。

簡單來說,容器就像他字面上的意思,容器 (廢話)。

顧名思義就是用來裝東西的空間,就像我們去餐廳,點了拉麵跟叉燒飯,一定是一碗裝著拉麵,一碗裝著叉燒飯,才不會互相影響,就像 Docker 容器裝著應用程式。

但碗不一定要裝東西呀? 也有可能空的碗? 沒錯~ 所以也會有空的容器,明天我們來介紹空的容器到底是什麼。

以上文章也同步更新在我的部落格:https://wl02599509.github.io/


上一篇
Day 2: 什麼是 Docker
下一篇
Day 4: 空的容器
系列文
淺嚐 Docker:新手莫慌、漫乘鯨魚30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言