[Docker Day 1] 初探Docker

什麼是Docker

Docker 是一個開源專案,誕生於 2013 年初,最初是 dotCloud 公司內部的一個業餘專案。它基於 Google 公司推出的 Go 語言實作。 專案後來加入了 Linux 基金會,遵從了 Apache 2.0 協議,原始碼在 GitHub 上進行維護。

Docker 自開源後受到廣泛的關注和討論,以至於 dotCloud 公司後來都改名為 Docker Inc。Redhat 已經在其 RHEL6.5 中集中支援 Docker;Google 也在其 PaaS 產品中廣泛應用。

Docker 專案的目標是實作輕量級的作業系統虛擬化解決方案。 Docker 的基礎是 Linux 容器(LXC)等技術。

在 LXC 的基礎上 Docker 進行了進一步的封裝,讓使用者不需要去關心容器的管理,使得操作更為簡便。使用者操作 Docker 的容器就像操作一個快速輕量級的虛擬機一樣簡單。
下面的圖片比較了 Docker 和傳統虛擬化方式的不同之處,可見容器是在作業系統層面上實作虛擬化,直接使用本地主機的作業系統,而傳統方式則是在硬體層面實作。

下面兩張圖片可以看出虛擬機器與Docker的差異。
Docker比虛擬機器少了Hypervisor與Guest OS,而是直接由Docker Engine跟Host OS溝通,換句話說,Docker並沒有虛擬化作業系統而是藉由與Host OS共享作業系統來獨力運行每一個Container,對比Virtual Machines在Hypervisor上將每一台主機的作業系統虛擬化,Docker是輕量非常非常多的,因此,Docker具備高移植性與佈署高效率等優勢。
VirtualMachine
Docker