本書(shū)是云計(jì)算技術(shù)與應(yīng)用專業(yè)校企合作系列教材.本書(shū)從Docker的基本使用入手,深入淺出的講解了Docker的構(gòu)建、操作、技術(shù)原理和實(shí)際使用過(guò)程中的典型項(xiàng)目和案例,內(nèi)容較全面,分為7個(gè)單元,前兩個(gè)單元為Docker容器的安裝,Docker容器的使用和管理,介紹了容器構(gòu)建和使用基礎(chǔ);第3、4、5單元為Docker倉(cāng)庫(kù)Registry,Docker網(wǎng)絡(luò)、存儲(chǔ)和接口,Docker容器編排與集群,介紹了容器的高級(jí)功能;第6、7單元為容器服務(wù)管理平臺(tái)Rancher和使用Docker構(gòu)建持續(xù)集成,以案例和項(xiàng)目的形成,展現(xiàn)給學(xué)習(xí)者真實(shí)的應(yīng)用場(chǎng)景。
一、緣起
Docker最初是DotCloud公司創(chuàng)始人Solomon Hykes在法國(guó)期間發(fā)起的一個(gè)公司內(nèi)部項(xiàng)目。它是基于DotCloud公司多年的云服務(wù)技術(shù)的一次革新,并于2013年3月以Apache 2.0授權(quán)協(xié)議開(kāi)源,主要項(xiàng)目代碼在GitHub上進(jìn)行維護(hù)。Docker項(xiàng)目后來(lái)還加入了Linux基金會(huì),并成立推動(dòng)開(kāi)放容器聯(lián)盟。
Docker使用Google公司推出的Go語(yǔ)言進(jìn)行開(kāi)發(fā)實(shí)現(xiàn),基于IAnux內(nèi)核的Cgroups、NameSpace及AIJFS類的Llnion Fs等技術(shù)對(duì)進(jìn)程進(jìn)行封裝隔離,屬于操作系統(tǒng)層面的虛擬化技術(shù)。由于隔離的進(jìn)程獨(dú)立于宿主和其他隔離的進(jìn)程,因此也稱其為容器。最初實(shí)現(xiàn)是基于LXC的,從Docker0.7以后開(kāi)始去除LXC,轉(zhuǎn)而使用自行開(kāi)發(fā)的ibcontainer,從Docker 1.11開(kāi)始,則進(jìn)一步演進(jìn)為使用RunC和lContainerd。
學(xué)習(xí)Docker的源碼并不是一個(gè)枯燥的過(guò)程,讀者可以從中理解Docker架構(gòu)的設(shè)計(jì)原理。Docker對(duì)使用者來(lái)講是一個(gè)C/S模式的架構(gòu),Docker的后端是一個(gè)非常松耦合的架構(gòu)。模塊各司其職,并有機(jī)組合,支撐Docker的運(yùn)行。Docker的框架包括Docker后臺(tái)進(jìn)程Doemon、存儲(chǔ)數(shù)據(jù)卷、網(wǎng)絡(luò)、鏡像倉(cāng)庫(kù)、鏡像、容器實(shí)例和控制臺(tái)等。二、結(jié)構(gòu)
本書(shū)教學(xué)內(nèi)容采用模塊化的編寫(xiě)思路,將Docker容器、容器服務(wù)平臺(tái)Rancher、持續(xù)集成DevOps三方面的學(xué)習(xí)內(nèi)容分為了Docker容器的安裝Docker的使用和管理,Docker倉(cāng)庫(kù)Registry,Docker網(wǎng)絡(luò)、存儲(chǔ)和接口,Docker容器編排與集群、容器服務(wù)管理平臺(tái)Rancher,使用Docker構(gòu)建持續(xù)集成7個(gè)教學(xué)單元和20個(gè)教學(xué)任務(wù)。
每個(gè)單元通過(guò)學(xué)習(xí)目標(biāo)引出單元的教學(xué)核心內(nèi)容,明確教學(xué)任務(wù)。每個(gè)任務(wù)的編寫(xiě)分為任務(wù)描述、知識(shí)學(xué)習(xí)、任務(wù)實(shí)施、項(xiàng)目實(shí)訓(xùn)4個(gè)環(huán)節(jié)。
·任務(wù)描述:簡(jiǎn)述任務(wù)目標(biāo),展示任務(wù)實(shí)施效果,提高學(xué)生學(xué)習(xí)興趣。
·知識(shí)學(xué)習(xí):詳細(xì)講解知識(shí)點(diǎn),通過(guò)系列實(shí)例實(shí)踐,邊學(xué)邊做。
·任務(wù)實(shí)施:通過(guò)任務(wù)綜合應(yīng)用所學(xué)知識(shí),提高學(xué)生系統(tǒng)地運(yùn)用知識(shí)的能力。
·項(xiàng)目實(shí)訓(xùn):在任務(wù)實(shí)施的基礎(chǔ)上通過(guò)“學(xué)、仿、做”達(dá)到理論與實(shí)踐的統(tǒng)一、知識(shí)內(nèi)化的教學(xué)目的。
最后進(jìn)行單元小結(jié),總結(jié)本單元的教學(xué)重點(diǎn)、難點(diǎn)。
三、特點(diǎn)
l_針對(duì)性強(qiáng),內(nèi)容選取以實(shí)用為主
本書(shū)以云計(jì)算技術(shù)專業(yè)學(xué)生的就業(yè)崗位群為導(dǎo)向,整個(gè)課程分為兩大部分:知識(shí)學(xué)習(xí)和技術(shù)應(yīng)用。知識(shí)學(xué)習(xí)以Docket概述、容器技術(shù)的基本概念、容器管理平臺(tái)Rancher的簡(jiǎn)介等基本知識(shí)為主,培養(yǎng)學(xué)生具有較為系統(tǒng)的Docker容器技術(shù)基本技能;技術(shù)應(yīng)用以容器的基本使用、管理平臺(tái)的運(yùn)維、持續(xù)集成的構(gòu)建為主,內(nèi)容設(shè)計(jì)比較豐富,便于學(xué)生理解和掌握。
2.精心設(shè)計(jì),教學(xué)內(nèi)容與數(shù)字化資源有機(jī)結(jié)合
本書(shū)以教學(xué)內(nèi)容為主線將各項(xiàng)數(shù)字化資源有機(jī)結(jié)合在一起,形成完整的數(shù)字課程。
數(shù)字化資源包括3個(gè)方面的內(nèi)容:第一、課程本身的基本信息,包括課程簡(jiǎn)介、學(xué)習(xí)指南、課程標(biāo)準(zhǔn)、整體設(shè)計(jì)、單元設(shè)計(jì)等;第二、教學(xué)內(nèi)容中重難點(diǎn)的微課視頻教學(xué)資源,既方便課內(nèi)教學(xué),又方便學(xué)生課外預(yù)習(xí)和復(fù)習(xí);第三、課程項(xiàng)目實(shí)訓(xùn),這包括課程的重難點(diǎn)剖析,循序漸進(jìn)的綜合項(xiàng)目開(kāi)發(fā)案例、實(shí)訓(xùn)任務(wù)單等。
本書(shū)內(nèi)容滿足課堂教學(xué)的需要,而數(shù)字化資源為學(xué)生課外自主探究學(xué)習(xí)提供了一個(gè)良好的平臺(tái),課堂教學(xué)與智慧職教平臺(tái)結(jié)合,提高了教學(xué)效果。
單元1 DOCker容器的安裝
學(xué)習(xí)目標(biāo)
學(xué)習(xí)情境
任務(wù)1.1 容器技術(shù)的調(diào)研
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
任務(wù)1.2 Docker的安裝
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
單元小結(jié)
單元2 Dcoker的使用和管理
學(xué)習(xí)目標(biāo)
學(xué)習(xí)情境
任務(wù)2.1 Docker鏡像管理
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
任務(wù)2.2 Docker鏡像定制
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
任務(wù)2.3 Docker容器管理
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
單元小結(jié)
單元3 Docker倉(cāng)庫(kù)Registry
學(xué)習(xí)目標(biāo)
學(xué)習(xí)情境
任務(wù)3.1 Docker倉(cāng)庫(kù)與加速的配置和使用
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
任務(wù)3.2 Docker私有倉(cāng)庫(kù)與管理
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
單元小結(jié)
單元4 Docker網(wǎng)絡(luò)、存儲(chǔ)和接口
學(xué)習(xí)目標(biāo)
學(xué)習(xí)情境
任務(wù)4.1 Docker存儲(chǔ)
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
任務(wù)4.2 Docker網(wǎng)絡(luò)
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
任務(wù)4.3 Docker APL的使用
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
任務(wù)4.4 Docker底層技術(shù)應(yīng)用
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
單元小結(jié)
單元5 Docker 容器編排與集群
學(xué)習(xí)目標(biāo)
學(xué)習(xí)情境
任務(wù)5.1 Docker-compose容器編排的使用
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
任務(wù)5.2 Docker Swarm集群的配置與管理。
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
任務(wù)5.3 Docker Corlsul構(gòu)建集群服務(wù)
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
單元小結(jié)
單元6 容器服務(wù)管理平臺(tái)Racher
學(xué)習(xí)目標(biāo)
學(xué)習(xí)情境
任務(wù)6.1 Rarcher安裝、部署、使用
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
任務(wù)6.2 基于Rancher構(gòu)建持續(xù)集成
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
單元小結(jié)
單元7 使用Docker構(gòu)建持續(xù)集成
學(xué)習(xí)目標(biāo)
學(xué)習(xí)情境
任務(wù)7.1 構(gòu)建NginxWeb應(yīng)用
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
任務(wù)7.2 持續(xù)集成管理軟件Jenkins應(yīng)用
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
任務(wù)7.3 構(gòu)建Java Web應(yīng)用
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
任務(wù)7.4 構(gòu)建Docker負(fù)載均衡
任務(wù)描述
知識(shí)學(xué)習(xí)
任務(wù)實(shí)施
項(xiàng)目實(shí)訓(xùn)
單元小結(jié)
參考文獻(xiàn)