《1》鏡像與容器
。鏡像是指文件系統快照或tar包;
。容器是指鏡像的運行態;
《2》容器與虛擬機
。虛擬機持有整個操作系統和應用程序的快照;
。虛擬機運行着自己的內核;
。虛擬機可以運行linux之外的其他操作系統;
。容器只持有應用程序,不過應用程序的概念可以延伸到整個linux發行版;
。容器共享宿主機的內核;
。容器只能運行linux,不過在同一宿主機上運行的每個容器都可包含不同的發行版;
《3》持續集成與持續交付
。在應用程序新代碼提交或觸發其他條件時,系統自動構建新鏡像並進行部署;
《4》宿主機管理
。設置或配備一臺物理服務器或虛擬機以便用於運行docker容器的過程;
《5》編排
。編排也稱編配,這個術語在docker生態系統中有多種含義,通常情況下,它包括調度和集羣管理,不過有時也包括了宿主機管理。在本系列文章中,我將編排作爲一個鬆散的總稱,包括容器調度的過程、集羣的管理、容器的鏈接(發現),以及網絡流量路由。或者換換句話說,編排是個控制器進程,用於決定在哪裏運行容器,以及如何讓集羣知道可用的服務;
《6》調度
。用於決定哪些容器可以以給定的資源約束,如cpu、內存和IO,運行在哪些宿主機上;
《7》發現
。容器如何公開服務給集羣,以及發現如何查找其他服務並與之通信的過程,舉個簡單的用例:一個網站應用容器發現如何鏈接數據庫服務。docker文檔中的發現是指將容器鏈接在一起,不過在生產級系統中,通常使用的是更復雜的發現機制;
《8》配置管理
。配置管理過去常常指的是docker出現之前的自動化工具,如Chef和Puppet,大多數的DevOps團隊正在轉移到docker上,以消除這類配置管理系統的複雜度。