2023 iT邦鐵人賽 Day 2 - 什麼是 Docker

前言

當我們提及 Docker 時,最先出現在腦海中的就是鯨魚跟容器。鯨魚是 Docker 應用程式的 icon。容器是 Docker 運作最主要的元素。

Docker 做的事

Docker 讓我們可以將一個或多個應用程式裝載到一個容器內,讓我們可以透過容器進行專案開發或系統運作。

不過與其說是將應用程式或專案裝載到容器裡,更正確地說,我們將專案轉換成專案的映像檔 (可以想像成一個壓縮檔),再透過專案的映像檔建立 (可以想像是解壓縮) 專案的容器,讓專案的容器能夠在 Docker Engine 上運作起來。

當我們將專案轉換成映像檔時,會一併把專案所需要的「環境」設置進去,並在映像檔轉換成容器時,環境與專案,皆會一同被安裝到容器裡,所以專案在容器內運作時,其實就很像專案在我們的電腦上運作。是不是很像昨天提到的伺服器的概念?

Docker 讓開發無障礙

我想每一位開發者都對一開始專案環境的建置,心裡多少會有所想法 (好麻煩)。如果問我開發最不喜歡的是什麼,那絕對就是建立環境。

從以上介紹可知,我們在建立專案的映像檔時,會連同環境也一併設置進去,所以當我今天只要有了這個專案的映像檔,我便能直接透過 Docker 來直接開發,而不需要安裝一堆東西後,再開始開發。

Docker 乘載多個 Server

Docker 將伺服器縮得更小,變成是 Docker 應用程式內的一個運行中的元素,容器。所以我們能透過 Docker 的容器,將一機一server變成一機多server。

結論

今天提到了很多 Docker 的專有名詞,像是 docker engine、映像檔、容器,這些細節都會在之後細細說明,今天主要先大方向了解 Docker 是什麼,可以做到什麼。