Docker概念整理

 1.關於容器(Container)

主機爲應用程序提供的完整的、隔離的用戶空間環境。某個容器內部的變動,不會影響其他容器。

容器技術利用 Linux Namespace、cgroups 等完成容器的隔離與資源限制。

同時,容器之間共享同一個操作系統內核。

2. 容器與虛擬化

相比容器技術,系統級虛擬化在隔離性方面更加成熟。它爲用戶提供了一個包括虛擬硬件(CPU/內存/IO 設備等)、操作系統在內的完整環境。

而容器在啓動銷燬速度、資源消耗、彈性伸縮等方面表現得極爲高效;但在隔離性與安全性方面,仍有很長的路要走。

 

3.關於 Docker

它提供了簡易的容器運行控制方法,便捷的鏡像存儲分發機制,以及高速發展的集羣化方案。

Docker 的出現大大降低了應用部署的難度,嚴格保證了線上環境的一致性。

Docker Daemon 是運行在主機上的 Docker 服務守護進程。它作爲 Docker 的 Server 端存在,實現了容器/鏡像相關的 API。

想要啓動 Docker 容器,必須先啓動 Docker Daemon。在我們的內部支持版本中,Docker 服務在 CentOS 7 上由 systemd 管理。

Docker Client 封裝了訪問 Docker Daemon API 的方法,並通過 socket(s) 與(同主機或不同主機的) Docker Daemon 通信。

Docker 安裝包集成了 Docker Daemon (dockerd) 和 Docker Client (docker)。

Docker Image,即 Docker 鏡像,類似不包含運行狀態的容器快照。鏡像內容包括應用程序及其依賴、環境變量、入口進程、端口信息等。

鏡像爲層級疊加結構(layers),並採用 Copy-on-Write 機制以節省空間。一個完整的鏡像由一層或多層組成。

LayerID 是一個唯一的 64 位哈希值,每層包含自身內容和它依賴的下一層的 layerID。

Docker Registry Docker 的鏡像存儲、分發中心。

 

Docker 心儀的應用類型:高可用,可伸縮,無狀態

實際上,所有的應用都可以用 Docker 運行。即便無法利用其與集羣結合得到的彈性伸縮這個優秀特性,Docker 依舊可以在單機環境下發揮它的其他優勢:只需一次封裝,即可永久保證環境的一致性

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