iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
1
Security

資安0~100K只要30天系列 第 6

Day 06 - 神之藍色小鯨魚 (一)

What is Docker ?

這隻藍色鯨魚就是今天的主角
本名叫做 Docker

Docker 本身也是虛擬化的一種
它與 VM 最大的不同就是
它屬於 "應用程式級別的虛擬化",稱為 Container (容器)
而 VM 為 "系統級的虛擬化",稱為 Guest
也因為這項不同
Docker 不需要將整個作業系統安裝起來
所以相較於 VM 有著非常輕量化的容量以及卓越的效能

一個更直觀的例子
VM 開機可能跟你一般電腦差不多甚至更久很多
Docker 啟動一個容器只需要幾秒鐘

在 Docker 中有幾個重要的名詞

  • Image
  • Container
  • Repo

Image

用來建立容器的模板
裡面包含了一個完整的作業環境
本身是唯讀的
可以透過 dockerfile 自行建立
或是透過遠端的倉庫拉別人做好的下來使用

Container

利用唯讀映像檔跑起來一個獨立作業的環境
多個容器使用同一個映像檔時也不用擔心彼此會干擾
而建立起來的容器會在唯讀的映像檔之上再建立一個可供修改的區域
這樣我們就可以在容器跑起來時對內部一些東西做修改而不會影響到本來的映像檔了

Repo

Docker 本身提供了一個遠端 Repo 可供大家使用
叫做 Docker Hub
其實概念很像 Github
大家把自己做好的映像檔放在公開倉庫
供需要的人使用
很多你聽過的大型專案其實在這上面都有進駐

Install

我們就一樣使用之前那個 ubuntu VM 來安裝 docker 吧
不推薦使用 windows 或是 macos 的環境來安裝
因為他們在網路的底層有很大的不同
如果日後有深入使用的需求會蠻不方便的

大家可以到 官方安裝教學
使用這行腳本貼到你的 terminal

如果無法複製請先檢查是否有開啟 VM 的剪貼簿功能

curl -fsSL https://get.docker.com | sudo sh

如果沒有 curlapt 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

查看 image

docker images

or

docker image ls

兩個指令都可以
新舊版的差異而已
官方是推薦下面啦
但我很久以前就開始用了已經習慣打上面了
改不過來 QQ

這個指令會列出你 pull 下來或是自己建的 image 也包括建失敗的

跑起來

當我們知道 image 名稱後
就可以利用這個映像檔跑一個容器起來
指令也很直觀
就是跑 XD

docker run hello-world

成功執行後你會看到它跟你說了一堆話
告訴你一些 docker 的流程
到此 恭喜你成功執行了自己的第一個 docker container !

接著明天將會教大家如何用 docker 快速的跑一個網頁伺服器起來
人人都可以輕鬆擁有自己的網頁~


上一篇
Day 05 - Linux 是什麼能吃嗎 (二)
下一篇
Day 07 - 神之藍色小鯨魚 (二)
系列文
資安0~100K只要30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言