本來是打算要直接上 Kubernetes 的,但是後來想想好像中間有點東西會沒講到,所以這篇先來介紹稍微簡單一點的 Docker 。
首先,講到 Docker 就要先講到很類似的東西 — VM(Virtual Machine,虛擬機),虛擬機的原理大概就是在原本的 OS 上在加上一層新的 OS ,優點是簡單、方便(對新手來說),但缺點就是效率差、占用容量大、啟動速度慢...等等,因此就有了 Docker 這個東西。
Docker 則是用 Hypervisor、WSL、Cgroup 等等的技術,取代掉了原先 VM 新增上去的 Guest OS 層,因此優缺點大致與 VM 相反,優點是效率高、占用容量小、啟動速度快,缺點就是較複雜、學習曲線比較陡峭(對新手來說)。
兩者之間的架構圖與差異大致如下
特性 | 容器 | 虛擬機 |
---|---|---|
啟動 | 秒級 | 分鐘級 |
硬碟容量 | 一般為 MB | 一般為 GB |
效能 | 接近原生 | 比較慢 |
系統支援量 | 單機支援上千個容器 | 一般幾十個 |
Docker 有三大重要的元素:
那麼就先來生個範例簡單介紹一下這三個元素吧。
首先先介紹最簡單的倉庫(Repository),這個只需要去 DockerHub 這個官方提供的公開倉庫就可以看到有許多其他人提供的一堆映像檔(Image)了,個人建議可以註冊一個帳號,註冊之後就可以將以後自己打包的映像檔(Image)推到上面供其他人使用了。
接著來快速講一下如何安裝吧,基本上到 https://www.docker.com/get-started/ 這邊,選擇與你機器對應的平台,下載完安裝即可。
Linux 有其他的安裝方式,但因為我寫這系列是面向教學使用,因此選擇較簡單的安裝方式,詳情可參考下方參考資料。
What is docker.io in relation to docker-ce and docker-ee (now called "Mirantis Kubernetes Engine")?
containerd.io vs docker-ce-cli vs docker-ce: what are the differences and what does each package do?
那麼就先到這邊,畢竟只是第二天而已,一下子就進到太困難的東西也不好。
大家掰~掰~