初識Docker

轉自:https://my.oschina.net/huangyong/blog/372491

Docker 是 2014 年最爲火爆的技術之一,幾乎所有的程序員都聽說過它。Docker 是一種“輕量級”容器技術,它幾乎動搖了傳統虛擬化技術的地位,現在國內外已經有越來越多的公司開始逐步使用 Docker 來替換現有的虛擬化平臺了。作爲一名 Java 程序員,我們是時候一起把 Docker 學起來了!

本文會對虛擬化技術與 Docker 容器技術做一個對比,然後引出一些 Docker 的名詞術語,比如:容器、鏡像等,隨後將使用 Docker 搭建一個 Java Web 運行環境,最後將對本文做一個總結。

我們先來回顧一下傳統虛擬化技術的體系架構:

虛擬化技術

可見,我們在宿主機的操作系統上,可安裝了多個虛擬機,而在每個虛擬機中,通過虛擬化技術,實現了一個虛擬操作系統,隨後,就可以在該虛擬操作系統上,安裝自己所需的應用程序了。這一切看似非常簡單,但其中的技術細節是相當高深莫測的,大神級人物都不一定說得清楚。

凡是使用過虛擬機的同學,應該都知道,啓動虛擬機就像啓動一臺計算機,初始化過程是相當慢的,我們需要等很久,才能看到登錄界面。一旦虛擬機啓動以後,就可以與宿主機建立網絡連接,確保虛擬機與宿主機之間是互聯互通的。不同的虛擬機之間卻是相互隔離的,也就是說,彼此並不知道對方的存在,但每個虛擬機佔用的都是宿主機的硬件與網絡資源。

我們再來對比一下 Docker 技術的體系架構吧:

Docker 技術

可見,在宿主機的操作系統上,有一個 Docker 服務在運行(或者稱爲“Docker 引擎”),在此服務上,我們可開啓多個 Docker 容器,而每個 Docker 容器中可運行自己所需的應用程序,Docker 容器之間也是相互隔離的,同樣地,都是佔用的宿主機的硬件與網絡資源。

Docker 容器相對於虛擬機而言,除了在技術實現上完全不一樣以外,啓動速度較虛擬機而言有本質的飛躍,啓動一個容器只在眨眼瞬間。不管是虛擬機還是 Docker 容器,它們都是爲了隔離應用程序的運行環境,節省我們的硬件資源,爲我們開發人員提供福利。

我們再來看看 Docker 的 Logo 吧:

Docker Logo

很明顯,這是一隻鯨魚,它託着許多集裝箱。我們可以把宿主機可當做這隻鯨魚,把相互隔離的容器可看成集裝箱,每個集裝箱中都包含自己的應用程序。這 Logo 簡直的太形象了!

需要強調的是,筆者並非否定虛擬化技術,而是想通過本文讓更多的讀者瞭解如何使用 Docker 技術,讓大家知道除了虛擬化技術以外,還有另一種替代技術,也能讓應用程序隔離起來。


發佈了16 篇原創文章 · 獲贊 29 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章