天天看點

《Docker生産環境實踐指南》——第1章 入門 1.1 術語

本節書摘來自異步社群《docker生産環境實踐指南》一書中的第1章,第1.1節,作者: 【美】joe johnston(喬•約翰斯頓)著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

建立docker生産環境系統的首要任務,是以一個有助于想象各元件如何互相配合的方式來了解其術語。與其他快速發展的技術生态系統一樣,我們可以預見,docker野心勃勃的市場營銷、不完善的文檔以及過時的部落格文章将造成使用者對各個工具職責了解上的混亂。

我們将在本章中定義貫穿全書的術語和概念,而非提供一份統一的docker百科全書。通常情況下,我們的定義與生态系統中的大體一緻,但如果你所閱讀的部落格文章中使用了不同的術語也不用太過驚訝。

在本章中,我們将介紹在生産環境中運作docker的核心概念以及不涉及具體技術的容器常識。在随後的章節中,我們将讨論真實世界的生産環境用例,并詳細說明其元件和供應商資訊。

下面讓我們來看一下本書所采用的docker術語。

1.1.1 鏡像與容器

鏡像是指檔案系統快照或tar包。

容器是指鏡像的運作态。

1.1.2 容器與虛拟機

虛拟機持有整個作業系統和應用程式的快照。

虛拟機運作着自己的核心。

虛拟機可以運作linux之外的其他作業系統。

容器隻持有應用程式,不過應用程式的概念可以延伸到整個linux發行版。

容器共享主控端的核心。

容器隻能運作linux,不過在同一主控端上運作的每個容器都可包含不同的發行版。

1.1.3 持續內建/持續傳遞

在應用程式新代碼送出或觸發其他條件時,系統自動建構新鏡像并進行部署。

1.1.4 主控端管理

設定/配備一台實體伺服器或虛拟機以便用于運作docker容器的過程。

1.1.5 編排

編排(orchestration,也稱編配)這個術語在docker生态系統中有多種含義。通常情況下,它包括排程和叢集管理,不過有時也包括了主控端管理。

在本書中,我們将編排作為一個松散的總稱,包括容器排程的過程、叢集的管理、容器的連結(發現),以及網絡流量路由。或者換句話說,編排是個控制器程序,用于決定在哪裡運作容器,以及如何讓叢集知道可用的服務。

1.1.6 排程

排程用于決定哪些容器可以以給定的資源限制(如cpu、記憶體和io)運作在哪些主控端上。

1.1.7 發現

容器如何公開服務給叢集,以及發現如何查找其他服務并與之通信的過程。舉個簡單的用例:一個網站應用容器發現如何連接配接到資料庫服務。

docker文檔中的發現是指将容器連結在一起,不過在生産級系統中,通常使用的是更複雜的發現機制。

1.1.8 配置管理

配置管理過去常常指的是docker出現之前的自動化工具,如chef和puppet。大多數的devops團隊正在轉移到docker上,以消除這類配置管理系統的複雜度。

在本書的示例中,配置管理工具隻用于配備具有docker和少量其他東西的主控端。