Docker學習筆記

Docker

Docker是一個在單一控制主機上同時運行多虛擬單元(容器)的輕量級的虛擬化解決方案。容器使用內核cgroups和內核名字空間來進行隔離。

完全的虛擬化解決方案,例如:Xen、KVM、libvirt等,都是基於處理器來模擬一個完全的硬件環境,並且可以控制虛擬機。

Docker架構如下:

wKioL1UHmMvAglt6AAhNB9Zq9B0709.jpg

wKiom1UHl6zRBNtAAAKa0XbBdFg982.jpg

術語

cgroups:Control Groups是Linux內核的一個特性,cgroups允許將任務(進程)以及他們的子進程聚合或分割到分級的組中,以便對資源進行隔離。

鏡像:專爲Docker容器定製的鏡像,只讀層;

鏡像名:鏡像的名字,Docker命令中將會用到這個鏡像名;

容器:一個運行的Docker鏡像;

容器ID:Docker容器的ID,唯一,用於命令行;

Tag:鏡像的標籤,可自定義;

內核名字空間:內核中用於隔離資源(例如:網絡、用戶、進程等)的特性;

Docker Host Server:運行Docker守護進程的系統,並提供鏡像和cgroups功能;

Registry:Docker鏡像的遠程倉庫;

Repository:保存所有一個鏡像所有版本的倉庫地址;

Docker優勢和侷限性

優勢:

1. 容器之間的應用程序和操作系統隔離;

2. 近乎本地的性能,Docker可以實時管理資源的分配;

3. 支持鏡像多個版本;

4. 可以基於一個已經存在的鏡像來製作新鏡像;

5. Docker Hub允許通過公共和私有倉庫來共享和存儲鏡像;

侷限性:

1. 容器運行在宿主系統的內核中,並且不能使用不同的內核;

2. 目前guest OS只支持Linux系統;

3. Docker不是一個全虛擬化棧;

4. Docker容器的安全性取決於宿主系統的安全性;

容器驅動

Docker有不同的後端驅動來處理容器;

1. libcontainer

2. LXC

3. libvirt-lxc

存儲驅動

1. vfs

2. devicemapper

3. btrfs

4. AUFS

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