Docker基礎學習(一)-基本概念和框架

一,Docker簡介

1,什麼是容器

(1)一種虛擬化的方案

(2)操作系統級別的虛擬化

(3)只能運行相同或相似內核的操作系統

(4)依賴於Linux內核特性:Namespace和CGroups(Control Group)

2,虛擬機與容器對比

        與虛擬相比,容器佔用的磁盤空間更少,如下圖,使用虛擬機部署應用需要包含應用,依賴的類庫和完整的操作系統,但是容器只需要應用和其依賴的類庫。

虛擬機原本可以幾十M的應用可能需要幾個G操作系統來支撐。

3,什麼是Docker

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

Docker的目標:

(1)提供簡單輕量的建模方式

(2)職責的邏輯分離

(3)快速高效的開發生命週期

(4)鼓勵使用面向服務的架構

Docker的使用場景:

(1)使用Docker容器開發、測試、部署服務

(2)創建隔離的運行環境

(3)搭建測試環境

(4)構建多用戶的平臺即服務(PaaS)基礎設施

(5)提供軟件即服務(SaaS)應用程序

(6)高性能、超大規模的宿主機部署

 

二,Docker的基本組成

1,Docker Client客戶端

2,Docker Daemon守護進程

3,Docker Image鏡像

4,Docker Container容器

5,Docker Registry倉庫 

Docker Client客戶端通過發送各種操作命令訪問守護進程,守護進程也將結果反饋到客戶端

Docker Client客戶端訪問守護進程,來操作Docker容器,容器是由鏡像來創建,而鏡像則放在Docker倉庫中。

三,Docker容器相關技術簡介

Namespace命名空間:

1,在編程語言中,它的主要作用是代碼的封裝即代碼隔離。

2,在操作系統系統中,它的主要作用是系統資源的隔離,包括:進程,網絡,文件系統等等。

Docker主要使用的5種命名空間:

(1)PID(Process ID) 進程隔離

(2)NET(Network) 管理網路接口

(3)IPC(InterProcess Communication) 管理跨進程通信的訪問

(4)MNT(Mount) 管理掛載點

(5)UTS(Unix Timesharing System) 隔離內核和版本標識

 

Control groups控制組提供的功能:

(1)資源限制

(2)優先級設定

(3)資源計量

(4)資源控制

 

通過以上兩種技術,提供給Docker容器的的能力:

(1)文件系統隔離:每個容器都有自己的root文件系統

(2)進程隔離:每個容器都運行在自己的進程環境中

(3)網路隔離:容器間的虛擬網絡接口和IP地址都是分開的

(4)資源隔離和分組:使用Cgroups將CPU和內存之類的資源獨立分配給每個Docker容器

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章