2022.08: 更新內容至 Blog
Eric
: 在使用 Docker 之前,先來聊聊 Docker 的背景與變化。
吉米
: 嗯嗯,不過,怎麼不直接進入主題呢?
Eric
: Docker 的出現到現在,歷經不少的變化。先了解一下,也沒有差,哈哈哈哈。
吉米
: 也是。
Docker 是 dotCloud 公司,在 2013 年推出的開源專案。同年,dotCloud 公司也更名為 Docker 公司。
Docker 在滙集眾多開發者的貢獻,與 Linux CoreOS 的大力支持下,很快的將 Docker 技術推展開來。
但是 2017 年 4 月,Docker 公司將原本開源的 Docker 專案名稱更改為 Moby。並將過去集合眾多開發者心血的 Docker,明確的區分為 企業版 ( Docker Enterprice Edition, Docker EE) 與 社群版 (Dockert Community Edition, Docker CE) 。
另一方面,Docker 為了支援不同平台,所以針對各同平台,開發各自的 Container Deamon 。但這種作法,會導制支援平臺越多,維護的版本就越多的情況。
補充一下,Container Deamon 在 Docker 技術中,被稱為 Docker Engineer 。
所以 Docker 併購了 Unikernel Systems 這個團隊,掌握了自行設計 Hypervisor 和 Unikernel 作業系統的技術。最終,產出 LinuxKit 這個 Linix 子系統。
在 LinuxKit 的支援下,達成 Docker Engineer 的統一化。這讓 Docker 走出 Linux 環境的限制,讓 Docker 可以在更多平台上活躍。
在 docker 之中,利用 docker image 的資訊,去建立 container。所以,一個 docker image 可以重覆創建 Container。
docker image ,是 docker 利用 dockerfile 指令所建制。每一條 dockerfile 指令,代表一個 唯讀層 (Read-only layer)。
每一個層都會堆畳的方式加入 docker image 之中,而且每層的內容,必為前面的增量。
當運行 image 後,所產生的個體,稱為 Container。而 Container 運行用的空間,也是這時候才配罝的。
Docker Container 包括 Docker Image
、執行環境
、標準指令集
這三個項目。
但,docker image ,每次都自己建立,豈不是重複做工嗎?
Docker 提供一個名為 Docker Hub 的 Remote Repositories ,讓所有 Docker 的使用者可能下載現成的 image。同時,也提供使用者可以將自己建立的 image 上傳。
使用者只要註冊 docker 的免費帳戶後,就能從 Docker Hub 下載 Image。同時,免費帳戶也可以將自己建立的 image 上傳到 Public Repositories。
如果使用者不想 image 被其他使用者下載,必需升級為付費帳戶,才能使用 Private Repositories。
當 Container 越來越多時,利用 Docker compose ,就可以方便的管理許多 Container。
利用 docker-compose.yml 這個檔案,就可以依不同的需求,個別定義與管理所有 Container 的設定。
Eric
: 現在對 Docker 相關的名詞有比較清楚的認識後,接下來,就是實際操作了。
吉米
: 哈哈!那就來吧。
<< 待續 >>