1. 程式人生 > >docker系列(一):初識docker

docker系列(一):初識docker

一、Docker簡介

enter image description here

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。

二、為什麼要使用Docker?

1.秒級啟動、資源利用率高

Docker容器的啟動可以在秒級實現,比傳統的虛擬機器要快很多;其次,Docker對系統資源利用率高,一臺主機上可以同時執行數千個Docker容器

2.更快的交付和部署

開發者可以使用一個標準的映象來構建一套開發容器,開發完成後,運維人員可以直接使用這個容器來部署程式碼。

3.更高效的虛擬化

Docker容器的執行不需要額外的hypervisor支援,它是核心級的虛擬化,因此可以實現更高的效能和效率。

下圖比較了Docker和傳統虛擬化方式的不同之處,可見Docker容器是在作業系統層面上實現虛擬化,直接複用本地主機的作業系統,而傳統方式則是在硬體層面實現。

 enter image description here

4.更簡單的管理

使用Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發和更新,從而實現自動化並高效的管理。

三、Docker三個基本概念

1.映象(Image)

Docker映象就是一個只讀的模板。比如一個映象可以包含一個完整的centOS作業系統環境。我們可以基於該映象建立不同功能的Docker容器。 Docker映象可以從Docker Hub上下載,關於映象的下載將在下一節中介紹。

2.容器(Container)

Docker容器是從映象建立的執行例項。可以把映象類比成java中的類,而容器就是該類例項化後的物件。因此可以根據一個映象建立多個容器。

容器可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。

可以把容器看成是一個簡易的linux環境和執行在其中的應用程式

注:映象是隻讀的,容器在啟動的時候建立一層可寫層作為最上層

3.倉庫(Repository)

倉庫是集中存放映象檔案的場所。最大的公開倉庫是Docker Hub,存放了數量龐大的映象供使用者下載,但是因為在國外,下載速度會受影響。國內的阿里雲Docker映象倉庫,可以供大陸使用者更快速的下載。

使用者建立了自己的映象之後可以使用push命令將它上傳到公有或私有倉庫,這樣在另外一臺機器上想使用這個映象的時候,只需要從倉庫上pull下來就可以了。Docker倉庫和Git倉庫很像。

enter image description here

enter image description here