這隻藍色鯨魚就是今天的主角
本名叫做 Docker
Docker 本身也是虛擬化的一種
它與 VM 最大的不同就是
它屬於 "應用程式級別的虛擬化",稱為 Container (容器)
而 VM 為 "系統級的虛擬化",稱為 Guest
也因為這項不同
Docker 不需要將整個作業系統安裝起來
所以相較於 VM 有著非常輕量化的容量以及卓越的效能
一個更直觀的例子
VM 開機可能跟你一般電腦差不多甚至更久很多
Docker 啟動一個容器只需要幾秒鐘
在 Docker 中有幾個重要的名詞
用來建立容器的模板
裡面包含了一個完整的作業環境
本身是唯讀的
可以透過 dockerfile 自行建立
或是透過遠端的倉庫拉別人做好的下來使用
利用唯讀映像檔跑起來一個獨立作業的環境
多個容器使用同一個映像檔時也不用擔心彼此會干擾
而建立起來的容器會在唯讀的映像檔之上再建立一個可供修改的區域
這樣我們就可以在容器跑起來時對內部一些東西做修改而不會影響到本來的映像檔了
Docker 本身提供了一個遠端 Repo 可供大家使用
叫做 Docker Hub
其實概念很像 Github
大家把自己做好的映像檔放在公開倉庫
供需要的人使用
很多你聽過的大型專案其實在這上面都有進駐
我們就一樣使用之前那個 ubuntu VM 來安裝 docker 吧
不推薦使用 windows 或是 macos 的環境來安裝
因為他們在網路的底層有很大的不同
如果日後有深入使用的需求會蠻不方便的
大家可以到 官方安裝教學
使用這行腳本貼到你的 terminal
如果無法複製請先檢查是否有開啟 VM 的剪貼簿功能
curl -fsSL https://get.docker.com | sudo sh
如果沒有 curl
請 apt install curl
等它跑好後
我們需要將自己加進 docker 這個 group 才能使用它的指令
sudo usermod -aG docker <your_name>
接著請重新登入你的 ubuntu 讓群組生效
我們可以先拉一個官方提供的測試 image 下來用用看
docker pull hello-world
這邊科普一下
進去 docker hub 看到的發布者有分為官方以及個人
如果是官方的
通常在 pull 時只需要打 image 名稱
如果是個人發布的
需要加上使用者名稱
例如 docker pull username/img_name
docker images
or
docker image ls
兩個指令都可以
新舊版的差異而已
官方是推薦下面啦
但我很久以前就開始用了已經習慣打上面了
改不過來 QQ
這個指令會列出你 pull 下來或是自己建的 image 也包括建失敗的
當我們知道 image 名稱後
就可以利用這個映像檔跑一個容器起來
指令也很直觀
就是跑 XD
docker run hello-world
成功執行後你會看到它跟你說了一堆話
告訴你一些 docker 的流程
到此 恭喜你成功執行了自己的第一個 docker container !
接著明天將會教大家如何用 docker 快速的跑一個網頁伺服器起來
人人都可以輕鬆擁有自己的網頁~