《Docker容器技術(shù) 配置、部署與應(yīng)用》習(xí)題及答案_第1頁(yè)
《Docker容器技術(shù) 配置、部署與應(yīng)用》習(xí)題及答案_第2頁(yè)
《Docker容器技術(shù) 配置、部署與應(yīng)用》習(xí)題及答案_第3頁(yè)
《Docker容器技術(shù) 配置、部署與應(yīng)用》習(xí)題及答案_第4頁(yè)
《Docker容器技術(shù) 配置、部署與應(yīng)用》習(xí)題及答案_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《Docker容器技術(shù)配置、部署與應(yīng)用》習(xí)題項(xiàng)目一Docker安裝選擇題1、有關(guān)Docker的敘述中,正確的是()。A.Docker不能將應(yīng)用程序發(fā)布到云端進(jìn)行部署。B.Docker將應(yīng)用程序及其依賴(lài)打包到一個(gè)可移植的鏡像中。C.Docker操作容器時(shí)必須關(guān)心容器中有什么軟件。D.容器依賴(lài)于主機(jī)操作系統(tǒng)的內(nèi)核版本,因而Docker局限于操作系統(tǒng)平臺(tái)。2、關(guān)于Docker的優(yōu)勢(shì),不正確的說(shuō)法是()。A.應(yīng)用程序快速、一致地交付。B.響應(yīng)式部署和伸縮應(yīng)用程序。C.Docker用來(lái)管理容器的整個(gè)生命周期,但不能保證一致的用戶(hù)界面。D.在同樣的硬件上運(yùn)行更多的工作負(fù)載。3、容器化開(kāi)發(fā)流程中,項(xiàng)目開(kāi)始時(shí)分發(fā)給所有開(kāi)發(fā)人員的是()。A.DockerfileB.Docker鏡像C.源代碼D.基礎(chǔ)鏡像4、以下關(guān)于docker命令的基本用法的說(shuō)法中,不正確的()。A.短格式的單字符選項(xiàng)可以組合在一起使用。B.使用布爾值選項(xiàng)時(shí)不賦值,Docker將選項(xiàng)值視為false。C.多值選項(xiàng)可以在單個(gè)命令行中多次定義。D.對(duì)于較長(zhǎng)的單行命令可以使用續(xù)行符進(jìn)行換行。簡(jiǎn)答題1.什么是Docker?2.容器與虛擬機(jī)有什么不同?3.Docker引擎包括哪些組件?4.簡(jiǎn)述Docker架構(gòu)。5.Docker使用了哪些底層技術(shù)?6.Docker命令行接口有哪些類(lèi)型?項(xiàng)目二Docker快速入門(mén)選擇題1、以下鏡像名稱(chēng)中,完整的表示是()。A.myregistryhost/fedora/httpd:version1.0。B.myregistryhost:5000/httpd:version1.0。C.myregistryhost:5000/fedora/httpd。D.myregistryhost:5000/fedora/httpd:version1.0。2、關(guān)于Docker鏡像操作,不正確的說(shuō)法是()。A.可以通過(guò)dangling的布爾值列出無(wú)標(biāo)簽的鏡像。B.通過(guò)shell命令替換可以解決鏡像的批量操作。C.離線環(huán)境中是無(wú)法導(dǎo)入鏡像的。D.多個(gè)標(biāo)簽可能對(duì)應(yīng)的是同一個(gè)鏡像。3、關(guān)于Docker容器操作,正確的說(shuō)法是()。A.使用不帶任何選項(xiàng)的dockerps命令可以列出本地主機(jī)上的全部容器。B.使用dockerrm-f命令刪除正在運(yùn)行的容器。C.使用dockerstart命令可以創(chuàng)建并啟動(dòng)一個(gè)新的容器。D.使用dockerattach命令可以連接未運(yùn)行的容器。4、以下關(guān)于Dockerfile指令的說(shuō)法中,不正確的是()。A.FROM可以在同一個(gè)Dockerfile文件中多次出現(xiàn),以創(chuàng)建多個(gè)鏡像層。B.RUN指令將在當(dāng)前鏡像頂部創(chuàng)建新的層,在其中執(zhí)行所定義的命令并提交結(jié)果。C.COPY和ADD指令的源都不可以是壓縮包。D.CMD用來(lái)指示dockerrun命令運(yùn)行鏡像時(shí)要執(zhí)行的命令。5、CMD和ENTRYPOINT都可定義運(yùn)行容器時(shí)執(zhí)行的命令,不正確的說(shuō)法是()。A.CMD指令應(yīng)為ENTRYPOINT指令提供默認(rèn)參數(shù),或者用于容器中執(zhí)行臨時(shí)命令。B.Dockerfile中沒(méi)有必要定義CMD或ENTRYPOINT指令。C.當(dāng)使用替代參數(shù)運(yùn)行容器時(shí),CMD指令的定義將會(huì)被覆蓋。D.將整個(gè)容器作為一個(gè)可執(zhí)行文件時(shí)應(yīng)當(dāng)定義ENTRYPOINT指令。6、從軟件開(kāi)發(fā)與運(yùn)維的角度看,容器對(duì)應(yīng)的階段是()。A.軟件部署與運(yùn)維B.軟件交付C.軟件開(kāi)發(fā)D.軟件調(diào)試簡(jiǎn)答題1.什么是鏡像?2.Docker使用哪幾種方式來(lái)標(biāo)識(shí)鏡像?3.鏡像描述文件有什么用?4.什么是基礎(chǔ)鏡像?5.簡(jiǎn)述鏡像的分層結(jié)構(gòu)。6.什么是容器?7.Docker使用哪幾種方式來(lái)標(biāo)識(shí)容器?8.什么是容器層?它有什么特點(diǎn)?9.寫(xiě)時(shí)復(fù)制有什么作用?10.Docker注冊(cè)中心與倉(cāng)庫(kù)有什么不同?11.DockerHub有哪些功能?12.Docker構(gòu)建鏡像有哪幾種方法?13.COPY指令應(yīng)遵守哪些復(fù)制規(guī)則?14.RUN、CMD和ENTRYPOINT指令有何不同?項(xiàng)目三Docker網(wǎng)絡(luò)與存儲(chǔ)配置選擇題1、不同Docker主機(jī)上運(yùn)行的容器之間需要通信,應(yīng)選擇()。A.用戶(hù)自定義橋接網(wǎng)絡(luò)B.overlay網(wǎng)絡(luò)C.macvlan網(wǎng)絡(luò)D.host網(wǎng)絡(luò)2、容器之間直接交流非常頻繁,應(yīng)選擇的網(wǎng)絡(luò)模式是()。A.host模式B.bridge模式C.none模式D.container模式3、關(guān)于容器之間的通信,不正確的說(shuō)法是()。A.默認(rèn)橋接網(wǎng)絡(luò)中,容器之間可以通過(guò)名稱(chēng)互相訪問(wèn)。B.容器通過(guò)端口映射對(duì)外部提供連接。C.容器之間通過(guò)掛載主機(jī)目錄可以實(shí)現(xiàn)相互之間的數(shù)據(jù)通信。D.容器之間使用--link選項(xiàng)建立傳統(tǒng)的容器互聯(lián)。4、以下關(guān)于端口映射的說(shuō)法中,不正確的是()。A.使用-P選項(xiàng)可以發(fā)布所有暴露的端口,要發(fā)布的端口必須提前暴露出來(lái)。B.使用-p選項(xiàng)發(fā)布特定端口,發(fā)布的端口不必提前暴露出來(lái)。C.使用-p主機(jī)端口:容器端口將映射主機(jī)上所有網(wǎng)絡(luò)接口的地址。D.使用-p選項(xiàng)不可以同時(shí)發(fā)布TCP和UDP端口。5、以下關(guān)于容器持久化數(shù)據(jù)的說(shuō)法中,不正確的是()。A.卷是在Docker中持久化數(shù)據(jù)存儲(chǔ)的最佳方式。B.容器的外部存儲(chǔ)位于Docker主機(jī)本地存儲(chǔ)區(qū)域之外。C.綁定掛載限制容器的可移植性。D.卷沒(méi)有繞過(guò)聯(lián)合文件系統(tǒng),其讀寫(xiě)性能不如綁定掛載。6、以下關(guān)于卷的說(shuō)法中,不正確的是()。A.同一個(gè)卷可以由多個(gè)容器掛載。B.刪除容器時(shí)會(huì)同時(shí)刪除其匿名卷。C.將一個(gè)空白卷掛載到容器中已包含文件的目錄中,則這些文件會(huì)被復(fù)制到卷中。D.啟動(dòng)帶有卷的容器時(shí),如果卷不存在,則Docker會(huì)自動(dòng)創(chuàng)建該卷。7、以下關(guān)于綁定掛載的說(shuō)法中,不正確的是()。A.綁定掛載目標(biāo)可以使用pwd命令表示容器的當(dāng)前目錄。B.綁定掛載文件可以用于主機(jī)與容器之間共享配置文件。C.需要掛載的目錄可以由主機(jī)上的絕對(duì)路徑或相對(duì)路徑引用。D.無(wú)論主機(jī)上的目錄是否為空,綁定掛載到容器中的非空目錄都會(huì)發(fā)生被遮蓋的情況。8、以下關(guān)于掛載操作的說(shuō)法中,正確的是()。A.Docker支持在容器中使用相對(duì)路徑的掛載點(diǎn)目錄。B.使用dockerrun命令時(shí)-v選項(xiàng)可以將所有選項(xiàng)組合在一個(gè)字段中。C.使用dockerrun命令時(shí)--mount選項(xiàng)采用若干鍵值對(duì)的寫(xiě)法,但同一個(gè)鍵只能用一次。D.對(duì)于tmpfs掛載,使用dockerrun命令時(shí)只可以使用--tmpfs選項(xiàng)。簡(jiǎn)答題1.Docker網(wǎng)絡(luò)驅(qū)動(dòng)主要有哪幾種?2.選擇Docker網(wǎng)絡(luò)驅(qū)動(dòng)應(yīng)遵守哪些原則?3.Docker的容器支持哪幾種網(wǎng)絡(luò)模式?4.用戶(hù)自定義橋接網(wǎng)絡(luò)和默認(rèn)橋接網(wǎng)絡(luò)有哪些不同?5.為什么生產(chǎn)環(huán)境不建議使用默認(rèn)橋接網(wǎng)絡(luò)?6.容器之間有哪些通信解決方案?7.如何能讓容器能夠被外部網(wǎng)絡(luò)訪問(wèn)?8.Docker存儲(chǔ)驅(qū)動(dòng)主要有哪幾種?9.Docker存儲(chǔ)有哪幾種掛載類(lèi)型?各自適合哪些應(yīng)用場(chǎng)合?10.什么是匿名卷?11.什么情形下容器會(huì)填充卷?12.什么情形下容器掛載目錄中的數(shù)據(jù)會(huì)被遮蓋?項(xiàng)目四Docker容器與守護(hù)進(jìn)程運(yùn)維選擇題1、關(guān)于運(yùn)行時(shí)選項(xiàng)覆蓋Dockerfile指令,不正確的說(shuō)法是()。A.Dockerfile聲明ENTRYPOINT指令,則容器運(yùn)行時(shí)指定的命令均作為參數(shù)追加到ENTRYPOINT指令中。B.--entrypoint運(yùn)行時(shí)選項(xiàng)設(shè)置會(huì)覆蓋鏡像的Dockerfile中的ENTRYPOINT指令設(shè)置。C.--expose運(yùn)行時(shí)選項(xiàng)會(huì)覆蓋Dockerfile的EXPOSE指令所定義的端口。D.-e運(yùn)行時(shí)選項(xiàng)設(shè)置的環(huán)境變量可以覆蓋默認(rèn)環(huán)境變量或Dockerfile中使用ENV指令定義的環(huán)境變量。2、Dockerfile文件中使用HEALTHCHECK指令聲明健康檢測(cè)配置,其中CMD指令后面的命令執(zhí)行完畢返回的值表示容器健康且可用的是()。A.0B.1C.2D.-13、關(guān)于容器所用內(nèi)存資源的限制,不正確的說(shuō)法是()。A.用戶(hù)內(nèi)存同時(shí)設(shè)置內(nèi)存和交換空間。B.在用戶(hù)內(nèi)存限制的基礎(chǔ)上限制內(nèi)核內(nèi)存。C.內(nèi)存預(yù)留可以保證不會(huì)超過(guò)限制。D.內(nèi)存“硬”限制僅允許容器使用不超過(guò)給定數(shù)量的用戶(hù)內(nèi)存或系統(tǒng)內(nèi)存。4、以下關(guān)于容器日志的說(shuō)法中,不正確的是()。A.將容器日志發(fā)送到STDOUT和STDERR是Docker的默認(rèn)日志行為。B.Docker默認(rèn)的日志驅(qū)動(dòng)是json-file。C.如果以后臺(tái)方式運(yùn)行容器,則不能直接看到輸出的日志。D.Logspout可以用來(lái)捕獲容器中的所有日志。5、以下關(guān)于容器監(jiān)控的說(shuō)法中,不正確的是()。A.可以使用dockertop命令查看容器中正在運(yùn)行的進(jìn)程的信息。B.可以使用dockerstats命令實(shí)時(shí)查看容器的系統(tǒng)資源使用情況。C.cAdvisor只監(jiān)控容器,不能監(jiān)控運(yùn)行容器的主機(jī)。D.WeaveScope能夠進(jìn)行跨主機(jī)監(jiān)控。6、CentOS操作系統(tǒng)中Docker守護(hù)進(jìn)程目錄是()。A./var/lib/dockerB./var/dockerC./var/opt/dockerD./etc/docker簡(jiǎn)答題1.容器自動(dòng)重啟有哪幾種策略?2.如何在Docker停止時(shí)讓容器繼續(xù)保持運(yùn)行?3.可以限制容器使用哪幾種資源?4.為什么要監(jiān)控容器?容器的日志管理為什么重要?5.Docker對(duì)象的標(biāo)記是指什么?6.如何一次性清理多種類(lèi)型的對(duì)象?7.Docker守護(hù)進(jìn)程的配置有哪兩種方式?如何避免配置沖突?8.如何解決daemon.json文件和啟動(dòng)腳本之間的沖突?項(xiàng)目五Docker容器編排選擇題1、DockerCompose可在單主機(jī)上建立多個(gè)隔離環(huán)境,以下說(shuō)法不正確的是()。A.DockerCompose使用項(xiàng)目名稱(chēng)隔離環(huán)境。B.在開(kāi)發(fā)主機(jī)上可以用DockerCompose創(chuàng)建單個(gè)環(huán)境的多個(gè)副本。C.為防止構(gòu)建互相干擾,可以將項(xiàng)目名稱(chēng)設(shè)置為唯一的構(gòu)建編號(hào)。D.在共享主機(jī)無(wú)法防止可能使用相同服務(wù)名稱(chēng)的不同項(xiàng)目之間的相互干擾。2、Compose文件中服務(wù)定義時(shí)關(guān)于鏡像,不正確的說(shuō)法的是()。A.build鍵用于定義構(gòu)建鏡像時(shí)的配置。B.image鍵用于指定啟動(dòng)容器的鏡像。C.同時(shí)指定image和build兩個(gè)鍵,Compose會(huì)構(gòu)建鏡像并且將鏡像命名為image鍵所定義的那個(gè)名稱(chēng)。D.image鍵指定的鏡像必須在本地已存在。3、Compose文件中服務(wù)定義時(shí)volumes鍵的定義可以使用短格式,以下鍵值表示不正確的是()。A.-./cache:/tmp/cacheB.-/opt/data:/var/lib/mysqlC.-~/configs:/etc/configs/:roD.-:/var/lib/mysql4、以下關(guān)于docker-composeup命令的說(shuō)法中,不正確的是()。A.--build選項(xiàng)表示在啟動(dòng)容器之前構(gòu)建鏡像。B.如果服務(wù)的容器已經(jīng)存在,服務(wù)的配置在創(chuàng)建后被改變,則該命令會(huì)停止并重新創(chuàng)建容器,而且并不保留所掛載的卷。C.--remove-orphans選項(xiàng)用于移除Compose文件中未定義的服務(wù)容器。D.該命令會(huì)聚合其中每個(gè)容器的輸出,而且默認(rèn)將所有輸出重定向到控制臺(tái)。5、以下文件中,DockerCompose默認(rèn)讀取的是()。A.docker-compose.ymlB.docker-compose.overrideC.d.ymlD.docker-compose.devl6、默認(rèn)情況下,執(zhí)行docker-composedown命令不會(huì)同時(shí)刪除()。A.Compose文件中定義的服務(wù)的容器B.Compose文件中networks節(jié)所定義的網(wǎng)絡(luò)C.服務(wù)容器掛載的卷D.所使用的默認(rèn)網(wǎng)絡(luò)簡(jiǎn)答題1.解釋Compose中項(xiàng)目、服務(wù)和容器的概念。2.簡(jiǎn)述Compose的工作機(jī)制。3.列舉DockerCompose主要應(yīng)用場(chǎng)景。4.簡(jiǎn)述DockerCompose基本步驟。5.簡(jiǎn)述Compose文件結(jié)構(gòu)。6.服務(wù)定義需要注意哪些事項(xiàng)?7.docker-compose的3個(gè)子命令up、run和start之間有什么區(qū)別?8.如何共享Compose通用配置?項(xiàng)目六應(yīng)用程序容器化選擇題1、關(guān)于鏡像多階段構(gòu)建,正確的說(shuō)法是()。A.每個(gè)FROM語(yǔ)句只能使用相同的基礎(chǔ)鏡像,并且各自開(kāi)始一個(gè)新的構(gòu)建階段。B.可以有選擇性地將構(gòu)建從一個(gè)階段復(fù)制到另一個(gè)階段,每一階段排除不需要的內(nèi)容。C.可以充分利用緩存最小化鏡像的層。D.只有減少不必要的中間層和文件數(shù)量,才能大幅縮減最終鏡像的大小。2、適合打包到應(yīng)用程序鏡像的是()。A.entrypoint.shB.數(shù)據(jù)文件C.操作系統(tǒng)D.應(yīng)用程序處理結(jié)果3、關(guān)于容器化應(yīng)用程序的數(shù)據(jù)持久化,不正確的說(shuō)法是()。A.盡可能使用卷存儲(chǔ)應(yīng)用程序的數(shù)據(jù)。B.生產(chǎn)環(huán)境中使用機(jī)密數(shù)據(jù)存儲(chǔ)服務(wù)中所有的敏感應(yīng)用程序數(shù)據(jù)。C.將應(yīng)用程序配置文件存儲(chǔ)在容器的可寫(xiě)層中。D.開(kāi)發(fā)環(huán)境中可以綁定掛載源代碼目錄。4、關(guān)于Java應(yīng)用程序容器化,不正確的說(shuō)法是()。A.一般將開(kāi)發(fā)人員的代碼打包成.war包并進(jìn)行發(fā)布。B.Maven工具用于編譯Java應(yīng)用程序,不可以創(chuàng)建Docker鏡像。C.使用Docker部署SpringBoot項(xiàng)目要先生成鏡像,再通過(guò)鏡像啟動(dòng)容器。D.SpringBoot應(yīng)用程序使用Maven作為構(gòu)建工具時(shí)編寫(xiě)pom.xml文件很關(guān)鍵。5、以下關(guān)于PHP應(yīng)用程序容器化的說(shuō)法中,不正確的是()。A.通過(guò)容器部署PHP應(yīng)用程序的運(yùn)行環(huán)境。B.PHP程序腳本適合集成到相應(yīng)的鏡像中,不可以外部掛載。C.通過(guò)實(shí)現(xiàn)LAMP平臺(tái)的容器化可以部署和運(yùn)行PHP應(yīng)用程序。D.為減小鏡像的體積,PHP源代碼可以由壓縮的.tar文件提供。6、以下關(guān)于Python應(yīng)用程序容器化的說(shuō)法中,不正確的是()。A.構(gòu)建Python程序鏡像時(shí)一般要考慮使用pipinstall命令部署運(yùn)行環(huán)境。B.Supervisor是用Python開(kāi)發(fā)的一套通用的進(jìn)程管理程序,容器化則不必使用它。C.Django應(yīng)用程序通常選擇Nginx和uWSGI相結(jié)合的部署方案。D.Python本身支持虛擬環(huán)境,容器化時(shí)也需要考慮支持。簡(jiǎn)答題1.應(yīng)用程序進(jìn)行容器化包括哪兩項(xiàng)工作?2.列舉編寫(xiě)Dockerfile的通用準(zhǔn)則。3.最小鏡像scratch有什么作用?4.為什么要使用多階段構(gòu)建?5.簡(jiǎn)述應(yīng)用程序容器化的基本步驟。6.容器化過(guò)程中如何處理應(yīng)用程序代碼?7.目前主流的開(kāi)源Java應(yīng)用程序服務(wù)器有哪幾種?8.Maven工具有什么用?9.SpringBoot框架有什么優(yōu)勢(shì)?SpringBoot應(yīng)用程序可以采用哪幾種啟動(dòng)方式?10.PHP應(yīng)用程序容器化有哪些特點(diǎn)?11.Python項(xiàng)目中的requirements.txt文件有什么用?12.PythonWeb應(yīng)用中uWSGI有什么用?項(xiàng)目七自動(dòng)化構(gòu)建與持續(xù)集成選擇題1、關(guān)于DockerHub的自動(dòng)化構(gòu)建,不正確的說(shuō)法是()。A.DockerHub可以從任何外部倉(cāng)庫(kù)的源代碼中自動(dòng)化構(gòu)建鏡像。B.DockerHub構(gòu)建的鏡像會(huì)自動(dòng)推送到Docker鏡像倉(cāng)庫(kù)。C.代碼倉(cāng)庫(kù)啟用自動(dòng)化測(cè)試,構(gòu)建鏡像之后、推送到鏡像倉(cāng)庫(kù)之前會(huì)運(yùn)行自動(dòng)化測(cè)試。D.鏡像自動(dòng)化構(gòu)建的構(gòu)建上下文是包含Dockerfile的代碼倉(cāng)庫(kù)。。2、關(guān)于Git工具的使用,不正確的說(shuō)法是()。A.gitclone命令用于將遠(yuǎn)程倉(cāng)庫(kù)復(fù)制到本地。B.gitadd命令不加任何選項(xiàng),將所有的文件從工作區(qū)添加到暫存區(qū)。C.gitpush命令用于將本地版本庫(kù)推送到遠(yuǎn)程遠(yuǎn)程倉(cāng)庫(kù)。D.gitcommit命令用于提交到本地的版本庫(kù)中。3、關(guān)于阿里云容器鏡像服務(wù)的構(gòu)建規(guī)則,不正確的說(shuō)法是()。A.默認(rèn)的內(nèi)置規(guī)則不可刪除,但仍然可以修改。B.在構(gòu)建規(guī)則中可以為所生成的Docker鏡像指定標(biāo)簽以區(qū)分不同版本。C.構(gòu)建規(guī)則可以指定從哪個(gè)代碼分支構(gòu)建中。D.構(gòu)建規(guī)則可以指定從某個(gè)代碼標(biāo)簽構(gòu)建。4、關(guān)于Drone持續(xù)集成和持續(xù)部署,正確的說(shuō)法是()。A.Drone服務(wù)器不能執(zhí)行CI/CD指令所定義的任務(wù)。B.Drone需要手動(dòng)將Webhook添加到對(duì)應(yīng)的代碼管理系統(tǒng)中。C.一個(gè).drone.yml文件只能定義一個(gè)工作流。D.工作流包含代碼構(gòu)建、代碼測(cè)試和代碼部署等一系列步驟。5、以下關(guān)于docker工作流,不正確的說(shuō)法是()。A.每個(gè)步驟就相當(dāng)于定義一個(gè)容器。B.每個(gè)步驟中必須使用image屬性定義用于創(chuàng)建容器的Docker鏡像。C.工作流步驟按順序執(zhí)行,不可以調(diào)整順序。D.在步驟定義部分使用when節(jié)定義條件。6、以下關(guān)于Drone實(shí)施,不正確的說(shuō)法是()。A.復(fù)制是默認(rèn)的工作流步驟。B.持續(xù)集成一般包括單元測(cè)試和靜態(tài)代碼分析工作流步驟。C.drone-ssh插件可以在Docker主機(jī)上部署項(xiàng)目。D.在工作流執(zhí)行過(guò)程中可以強(qiáng)制中斷,并不會(huì)影響下一個(gè)工作流的執(zhí)行。簡(jiǎn)答題1.代碼管理中項(xiàng)目創(chuàng)建的默認(rèn)分支是什么?它有什么作用?2.代碼倉(cāng)庫(kù)是通過(guò)什么觸發(fā)鏡像倉(cāng)庫(kù)的自動(dòng)功能的?3.自動(dòng)化構(gòu)建鏡像有哪些優(yōu)點(diǎn)?4.簡(jiǎn)述Git工具的主要用途。5.什么是持續(xù)集成?什么是持續(xù)部署?6.簡(jiǎn)述Drone持續(xù)集成和持續(xù)部署的基本流程。7.Drone插件有什么作用?8.Drone中服務(wù)器與代理各自職責(zé)是什么?9.為什么drone-agent服務(wù)需要綁定掛載/var/run/docker.sock文件?項(xiàng)目八Docker集群配置與應(yīng)用選擇題1、關(guān)于DockerSwarm的特性,不正確的說(shuō)法是()。A.采用中心化設(shè)計(jì)以適應(yīng)集中統(tǒng)一管理。B.支持狀態(tài)自動(dòng)調(diào)整。C.默認(rèn)具有安全機(jī)制。D.采用聲明式服務(wù)模型。2、7個(gè)管理器節(jié)點(diǎn)的Swarm集群中最多允許同時(shí)失效的管理器節(jié)點(diǎn)數(shù)是()。A.1B.2C.3D.43、關(guān)于任務(wù)調(diào)度,不正確的說(shuō)法是()。A.編排器通過(guò)調(diào)度任務(wù)來(lái)實(shí)現(xiàn)期望的狀態(tài)。B.任務(wù)是單向機(jī)制,它通過(guò)一系列狀態(tài)單調(diào)地前進(jìn)。C.節(jié)點(diǎn)暫停任務(wù)也會(huì)被暫停,節(jié)點(diǎn)恢復(fù)可用之后,任務(wù)也會(huì)在該節(jié)點(diǎn)上被恢復(fù)運(yùn)行。D.任務(wù)未通過(guò)健康檢查,則該編排器會(huì)創(chuàng)建一個(gè)新的任務(wù)副本,以生成一個(gè)新的容器。4、執(zhí)行dockerservicels命令顯示正在運(yùn)行的服務(wù)的列表,其中某服務(wù)的REPLICAS列值為4/5,以下解釋不正確的是()。A.該服務(wù)當(dāng)前運(yùn)行的副本數(shù)為4。B.該服務(wù)期望運(yùn)行的副本數(shù)為5。C.該服務(wù)目前沒(méi)有部署完成。D.該服務(wù)一定有1個(gè)副本已經(jīng)崩潰了。5、創(chuàng)建服務(wù)使用dockerservicecreate--replicas3--nameredis--rollback-parallelism2--rollback-monitor10s--rollback-max-failure-ratio0.3redis:4.0命令設(shè)置回滾策略,有關(guān)的解釋不正確的是()。A.--rollback-parallelism2表示最多可以并行回滾2個(gè)任務(wù)。B.--rollback-monitor10s表示在回滾之前對(duì)任務(wù)進(jìn)行10s的監(jiān)視,以確保它們不會(huì)退出。C.--rollback-max-failure-ratio0.3表示允許最大故障率為30%。D.--replicas3表示最多只能運(yùn)行3個(gè)服務(wù)副本。6、以下關(guān)于Swarm模式的overlay網(wǎng)絡(luò)特性的說(shuō)法中,不正確的是()。A.多個(gè)服務(wù)可以連接到同一個(gè)overlay網(wǎng)絡(luò)。B.默認(rèn)情況下,服務(wù)發(fā)現(xiàn)為每個(gè)Swarm服務(wù)分配一個(gè)虛擬IP地址和DNS名稱(chēng)。C.同一個(gè)網(wǎng)絡(luò)中,容器之間可以使用服務(wù)名稱(chēng)相互通信。D.只能使用虛擬IP提供外部訪問(wèn)服務(wù)。7、以下關(guān)于Swarm的端點(diǎn)模式的說(shuō)法中,不正確的是()。A.端點(diǎn)模式定義的連接到Swarm集群的外部客戶(hù)端的服務(wù)發(fā)現(xiàn)方法。B.IPVS和DNS輪詢(xún)這兩種機(jī)制對(duì)應(yīng)的端點(diǎn)模式分別是vip和dnsrr。C.采用vip端點(diǎn)模式,Docker為每個(gè)服務(wù)分配一個(gè)虛擬IP。D.采用dnsrr模式,Docker為服務(wù)設(shè)置DNS條目,還可以再設(shè)置發(fā)布端口。8、以下關(guān)于Docker棧文件格式的說(shuō)法中,不正確的是()。A.棧文件本身是一個(gè)Compose文件。B.使用deploy關(guān)鍵字定義服務(wù)的部署和運(yùn)行相關(guān)的配置。C.使用build關(guān)鍵字在部署應(yīng)用程序時(shí)構(gòu)建新的鏡像。D.使用deploy關(guān)鍵字時(shí)通過(guò)endpoint_mode選項(xiàng)設(shè)置端點(diǎn)模式。簡(jiǎn)答題1.什么是Swarm集群?2.什么是Swarm節(jié)點(diǎn)?節(jié)點(diǎn)按角色分為哪幾種類(lèi)型?3.什么是Swarm服務(wù)?什么是Swarm任務(wù)?4.簡(jiǎn)述服務(wù)、任務(wù)與容器之間的關(guān)系。5.按順序列出Swarm模式中調(diào)度要執(zhí)行的工作任務(wù)。6.排空節(jié)點(diǎn)具有什么特點(diǎn)?有什么用途?7.建立Swarm集群默認(rèn)會(huì)創(chuàng)建哪兩個(gè)網(wǎng)絡(luò)?8.簡(jiǎn)述Swarm的服務(wù)發(fā)現(xiàn)工作機(jī)制。9.Swarm路由網(wǎng)有什么用?10.Swarm如何實(shí)現(xiàn)負(fù)載平衡?11.什么是Swarm棧?其主要用途是什么?12.簡(jiǎn)述Docker棧和DockerCompose之間的區(qū)別。13.簡(jiǎn)述使用Docker棧部署和管理應(yīng)用程序的基本流程。習(xí)題參考答案項(xiàng)目一Docker安裝選擇題1、A2、C3、A4、B簡(jiǎn)答題1.什么是Docker?Docker是一個(gè)開(kāi)源的容器項(xiàng)目,是一個(gè)運(yùn)行和管理容器的容器引擎。Docker為應(yīng)用程序的開(kāi)發(fā)、發(fā)布和運(yùn)行提供一個(gè)基于容器的標(biāo)準(zhǔn)化平臺(tái)。容器運(yùn)行的是應(yīng)用程序,Docker平臺(tái)用來(lái)管理容器的整個(gè)生命周期。2.容器與虛擬機(jī)有什么不同??jī)烧叩牟煌幹饕w現(xiàn)在以下4個(gè)方面。容器在主機(jī)上本地運(yùn)行,運(yùn)行的是一個(gè)獨(dú)立的進(jìn)程,并與其他容器共享主機(jī)的操作系統(tǒng)內(nèi)核,具備輕量化的優(yōu)點(diǎn)。而每個(gè)虛擬機(jī)運(yùn)行一個(gè)完整的客戶(hù)操作系統(tǒng),主機(jī)要為每個(gè)虛擬機(jī)分配資源,虛擬機(jī)提供的環(huán)境所包含的資源超出了大多數(shù)應(yīng)用程序的實(shí)際需要。各個(gè)容器共享主機(jī)的操作系統(tǒng),使用的是主機(jī)操作系統(tǒng)的內(nèi)核,容器依賴(lài)于主機(jī)操作系統(tǒng)的內(nèi)核版本。虛擬機(jī)有自己的操作系統(tǒng),且獨(dú)立于主機(jī)操作系統(tǒng),其操作系統(tǒng)內(nèi)核可以與主機(jī)不同。容器在主機(jī)操作系統(tǒng)的用戶(hù)空間內(nèi)運(yùn)行,并且與操作系統(tǒng)的其他進(jìn)程相互隔離,啟動(dòng)時(shí)也不需要啟動(dòng)操作系統(tǒng)內(nèi)核空間。與虛擬機(jī)相比,容器啟動(dòng)快、開(kāi)銷(xiāo)少,而且遷移更便捷。就隔離特性來(lái)說(shuō),容器是應(yīng)用層面的隔離,虛擬機(jī)是物理資源層面的隔離。3.Docker引擎包括哪些組件?Docker引擎是客戶(hù)/服務(wù)器架構(gòu)的應(yīng)用程序,包括的組件有服務(wù)器(Docker守護(hù)進(jìn)程)、RESTAPI(定義程序與Docker守護(hù)進(jìn)程交互的接口)和客戶(hù)端(命令行接口)。4.簡(jiǎn)述Docker架構(gòu)。Docker客戶(hù)端與Docker守護(hù)進(jìn)程通信,而Docker守護(hù)進(jìn)程相當(dāng)于Docker服務(wù)器,負(fù)責(zé)構(gòu)建、運(yùn)行和分發(fā)容器的繁重任務(wù)。Docker客戶(hù)端和守護(hù)進(jìn)程之間使用RESTAPI通過(guò)UNIX套接字(Socket)或網(wǎng)絡(luò)接口進(jìn)行通信。Docker守護(hù)進(jìn)程和Docker客戶(hù)端屬于Docker引擎的一部分。Docker注冊(cè)中心用于存儲(chǔ)和分發(fā)Docker鏡像。默認(rèn)情況下,Docker守護(hù)進(jìn)程會(huì)到DockerHub中查找鏡像。5.Docker使用了哪些底層技術(shù)?Docker使用的底層技術(shù)包括名稱(chēng)空間、控制組、聯(lián)合文件系統(tǒng)和容器格式。6.Docker命令行接口有哪些類(lèi)型?Docker命令行接口類(lèi)型包括引擎命令行接口、容器編排命令行接口、機(jī)器命令行接口、DTR命令行接口和UCP命令行接口。項(xiàng)目二Docker快速入門(mén)選擇題1、D2、C3、B4、C5、B6、A簡(jiǎn)答題1.什么是鏡像?Docker鏡像是按照Docker要求定制的應(yīng)用程序。一個(gè)Docker鏡像可以包括一個(gè)應(yīng)用程序以及能夠運(yùn)行它的基本操作系統(tǒng)環(huán)境。Docker鏡像是一個(gè)特殊的文件系統(tǒng),除了提供容器運(yùn)行時(shí)所需的程序、庫(kù)、資源、配置等文件外,還包含了為運(yùn)行準(zhǔn)備的一些配置參數(shù)。2.Docker使用哪幾種方式來(lái)標(biāo)識(shí)鏡像?鏡像可以通過(guò)鏡像ID、鏡像名稱(chēng)或者鏡像摘要值來(lái)標(biāo)識(shí)。3.鏡像描述文件有什么用?Docker所用的Dockerfile文件用來(lái)描述鏡像,定義了如何構(gòu)建Docker鏡像。Docker通過(guò)讀取Dockerfile中的指令自動(dòng)構(gòu)建鏡像。4.什么是基礎(chǔ)鏡像?大多數(shù)鏡像都是從一個(gè)父鏡像開(kāi)始擴(kuò)展的,這個(gè)父鏡像通常是一個(gè)基礎(chǔ)鏡像?;A(chǔ)鏡像不依賴(lài)其他鏡像,而是從“零”開(kāi)始構(gòu)建。5.簡(jiǎn)述鏡像的分層結(jié)構(gòu)。早期鏡像的分層結(jié)構(gòu)是通過(guò)聯(lián)合文件系統(tǒng)實(shí)現(xiàn)的,聯(lián)合文件系統(tǒng)將各層的文件系統(tǒng)疊加在一起,向用戶(hù)呈現(xiàn)一個(gè)完整的文件系統(tǒng)。這種分層結(jié)構(gòu)會(huì)導(dǎo)致鏡像的層數(shù)越來(lái)越多,需要修改大文件時(shí)會(huì)影響操作效率,底層基礎(chǔ)鏡修改導(dǎo)致維護(hù)工作量大,鏡像無(wú)法審計(jì)。為克服這些不足,Docker推薦選擇Dockerfile文件逐層構(gòu)建鏡像,每一層都由鏡像的Dockerfile指令所決定,除了最后一層,每層都是只讀的。6.什么是容器?容器是指從鏡像創(chuàng)建的應(yīng)用程序運(yùn)行實(shí)例。鏡像是靜態(tài)的定義,容器是鏡像運(yùn)行時(shí)的實(shí)體,基于同一鏡像可以創(chuàng)建若干不同的容器。容器的實(shí)質(zhì)是進(jìn)程,但與直接在主機(jī)上執(zhí)行的進(jìn)程不同,容器進(jìn)程在屬于自己的獨(dú)立的命名空間內(nèi)運(yùn)行。因此容器可以擁有自己的根文件系統(tǒng)、自己的網(wǎng)絡(luò)配置、自己的進(jìn)程空間,甚至自己的用戶(hù)ID空間。7.Docker使用哪幾種方式來(lái)標(biāo)識(shí)容器?Docker使用容器ID或容器名稱(chēng)來(lái)標(biāo)識(shí)容器。8.什么是容器層?它有什么特點(diǎn)?正在運(yùn)行的容器會(huì)在其鏡像上面增加一個(gè)可寫(xiě)的層,所有寫(xiě)入容器的數(shù)據(jù)都保存在這個(gè)可寫(xiě)層中,這個(gè)可寫(xiě)層就是容器層。由于每個(gè)容器都有自己的可寫(xiě)容器層,所有的改變都存儲(chǔ)在這個(gè)容器層中,因此多個(gè)容器可以共享訪問(wèn)同一個(gè)底層鏡像,并且仍然擁有自己的數(shù)據(jù)狀態(tài)。9.寫(xiě)時(shí)復(fù)制有什么作用?寫(xiě)時(shí)復(fù)制最大限度地減少了每個(gè)后續(xù)層的I/O和空間大小,減少鏡像大小,使容器效率更高。10.Docker注冊(cè)中心與倉(cāng)庫(kù)有什么不同?注冊(cè)中心是存放倉(cāng)庫(kù)的地方,一個(gè)注冊(cè)中心往往有很多倉(cāng)庫(kù)。倉(cāng)庫(kù)是集中存放鏡像文件的地方,每個(gè)倉(cāng)庫(kù)集中存放某一類(lèi)鏡像,往往包括多個(gè)鏡像文件,不同的鏡像通過(guò)不同的標(biāo)簽來(lái)區(qū)分,并通過(guò)“倉(cāng)庫(kù)名:標(biāo)簽”格式指定特定版本的鏡像。11.DockerHub有哪些功能?DockerHub具有以下主要功能。(1)鏡像倉(cāng)庫(kù),用于上傳和下載容器鏡像。(2)團(tuán)隊(duì)和組織,管理對(duì)容器鏡像的私有倉(cāng)庫(kù)的訪問(wèn)。(3)提供官方鏡像。(4)提供發(fā)布者鏡像。(5)鏡像構(gòu)建,支持源代碼托管平臺(tái)自動(dòng)構(gòu)建容器鏡像并將它們上傳到DockerHub。(6)提供Webhooks。這是一個(gè)自動(dòng)化構(gòu)建特性,在一個(gè)鏡像上傳成功后,Webhooks會(huì)觸發(fā)操作,將DockerHub與其他服務(wù)進(jìn)行整合。12.Docker構(gòu)建鏡像有哪幾種方法?Docker提供了兩種構(gòu)建鏡像的方法,一是將現(xiàn)有容器轉(zhuǎn)化為鏡像,二是通過(guò)Dockerfile構(gòu)建鏡像。13.COPY指令應(yīng)遵守哪些復(fù)制規(guī)則?COPY指令應(yīng)遵守以下復(fù)制規(guī)則。(1)源路徑必須位于構(gòu)建上下文中。(2)如果源是目錄,則復(fù)制目錄的整個(gè)內(nèi)容,包括文件系統(tǒng)元數(shù)據(jù)。(3)如果源是任何其他類(lèi)型的文件,則它會(huì)與其元數(shù)據(jù)被分別復(fù)制。(4)如果直接指定多個(gè)源,或者源中使用了通配符,則目的路徑必須是目錄,并且必須以斜杠(/)結(jié)尾。(5)如果目的路徑不以斜杠結(jié)尾,則它將被視為常規(guī)文件,源內(nèi)容將被寫(xiě)入目錄路徑。(6)如果目的路徑不存在,則會(huì)與其路徑中所有缺少的目錄一起被創(chuàng)建。14.RUN、CMD和ENTRYPOINT指令有何不同?RUN指令執(zhí)行命令并創(chuàng)建新的鏡像層,經(jīng)常用于安裝應(yīng)用程序和軟件包。RUN先于CMD或ENTRYPOINT指令在構(gòu)建鏡像時(shí)執(zhí)行,并被固化在所生成的鏡像中。CMD和ENTRYPOINT指令在每次啟動(dòng)容器時(shí)才執(zhí)行,兩者的區(qū)別在于CMD指令會(huì)被dockerrun命令所覆蓋。兩個(gè)指令一起使用時(shí),ENTRYPOINT指令作為可執(zhí)行文件,而CMD指令則為ENTRYPOINT指令提供默認(rèn)參數(shù)。項(xiàng)目三Docker網(wǎng)絡(luò)與存儲(chǔ)配置選擇題1、B2、D3、A4、D5、D6、B7、C8、B簡(jiǎn)答題1.Docker網(wǎng)絡(luò)驅(qū)動(dòng)主要有哪幾種?常用的Docker網(wǎng)絡(luò)驅(qū)動(dòng)有bridge(橋接網(wǎng)絡(luò))、host(主機(jī)網(wǎng)絡(luò))、overlay(覆蓋網(wǎng)絡(luò))、macvlan、none和網(wǎng)絡(luò)插件。2.選擇Docker網(wǎng)絡(luò)驅(qū)動(dòng)應(yīng)遵守哪些原則?選擇Docker網(wǎng)絡(luò)驅(qū)動(dòng)應(yīng)遵守以下原則。(1)用戶(hù)自定義橋接網(wǎng)絡(luò)最適合用于同一個(gè)Docker主機(jī)上運(yùn)行的多個(gè)容器之間需要通信的場(chǎng)景。(2)host網(wǎng)絡(luò)最適用于當(dāng)網(wǎng)絡(luò)棧不能與Docker主機(jī)隔離,而容器的其他方面需要被隔離的場(chǎng)景。(3)overlay網(wǎng)絡(luò)適用于不同Docker主機(jī)上運(yùn)行的容器需要通信的場(chǎng)景,或者多個(gè)應(yīng)用程序通過(guò)Swarm集群服務(wù)一起工作的場(chǎng)景。(4)macvlan網(wǎng)絡(luò)適用于從虛擬機(jī)遷移過(guò)來(lái)的場(chǎng)景,或者容器需要像網(wǎng)絡(luò)上的物理機(jī)一樣,擁有獨(dú)立MAC地址的場(chǎng)景。(5)第三方網(wǎng)絡(luò)插件適用于將Docker與專(zhuān)用網(wǎng)絡(luò)棧進(jìn)行集成的場(chǎng)景。3.Docker的容器支持哪幾種網(wǎng)絡(luò)模式?Docker的容器支持5種網(wǎng)絡(luò)模式,分別是bridge模式、host模式、container模式和none模式,以及自定義網(wǎng)絡(luò)。4.用戶(hù)自定義橋接網(wǎng)絡(luò)和默認(rèn)橋接網(wǎng)絡(luò)有哪些不同?主要不同點(diǎn)體現(xiàn)在以下幾個(gè)方面。(1)用戶(hù)自定義橋接網(wǎng)絡(luò)能提供容器化應(yīng)用程序之間更好的隔離和互操作性,連接到同一個(gè)用戶(hù)自定義橋接網(wǎng)絡(luò)的容器會(huì)自動(dòng)互相暴露所有端口,但不會(huì)將端口暴露到外部。而默認(rèn)橋接網(wǎng)絡(luò)上運(yùn)行應(yīng)用棧,Docker主機(jī)需要通過(guò)其他方式來(lái)限制對(duì)端口的訪問(wèn)。(2)用戶(hù)自定義橋接網(wǎng)絡(luò)提供容器之間自動(dòng)DNS解析功能,可以通過(guò)名稱(chēng)或別名互相訪問(wèn)。而默認(rèn)橋接網(wǎng)絡(luò)上的容器只能通過(guò)IP地址互相訪問(wèn)。(3)容器可以在運(yùn)行時(shí)與用戶(hù)自定義網(wǎng)絡(luò)連接和斷開(kāi)。要斷開(kāi)與默認(rèn)橋接網(wǎng)絡(luò)的連接,需要停止容器并使用不同的網(wǎng)絡(luò)選項(xiàng)重新創(chuàng)建該容器。(4)每個(gè)用戶(hù)可通過(guò)自定義網(wǎng)絡(luò)創(chuàng)建一個(gè)可配置的網(wǎng)橋,而默認(rèn)橋接網(wǎng)絡(luò)不行。(5)用戶(hù)自定義網(wǎng)絡(luò)中所連接的容器無(wú)法直接共享環(huán)境變量,而默認(rèn)橋接網(wǎng)絡(luò)中所連接的容器可以共享環(huán)境變量。用戶(hù)自定義網(wǎng)絡(luò)有更好的方式來(lái)實(shí)現(xiàn)共享環(huán)境變量。5.為什么生產(chǎn)環(huán)境不建議使用默認(rèn)橋接網(wǎng)絡(luò)?默認(rèn)橋接網(wǎng)絡(luò)相當(dāng)于VMware虛擬機(jī)網(wǎng)絡(luò)連接的NAT模式,容器擁有獨(dú)立的網(wǎng)絡(luò)名稱(chēng)空間和隔離的網(wǎng)絡(luò)棧,不支持基于名稱(chēng)的服務(wù)發(fā)現(xiàn)和用戶(hù)指定的IP地址,所連接的容器只能通過(guò)IP地址互相訪問(wèn),除非創(chuàng)建容器時(shí)使用--link選項(xiàng)建立容器連接。由于功能受限,默認(rèn)橋接網(wǎng)絡(luò)只適合一些演示或?qū)嶒?yàn)場(chǎng)合,不建議用于生產(chǎn)。6.容器之間有哪些通信解決方案?容器之間的通信方案列舉如下。(1)bridge模式讓同一個(gè)Docker網(wǎng)絡(luò)上的所有容器在所有端口上都可以相互連接。默認(rèn)橋接網(wǎng)絡(luò)所連接的容器只能通過(guò)IP地址互相訪問(wèn),除非創(chuàng)建容器時(shí)使用--link選項(xiàng)建立容器連接。(2)host模式讓所有容器都位于同一個(gè)主機(jī)網(wǎng)絡(luò)空間中,并共用主機(jī)的IP地址棧,在該主機(jī)上的所有容器都可通過(guò)主機(jī)的網(wǎng)絡(luò)接口相互通信。(3)在用戶(hù)自定義橋接網(wǎng)絡(luò)中,容器之間可以通過(guò)名稱(chēng)或別名互相訪問(wèn)。(4)容器通過(guò)端口映射對(duì)外部提供連接。(5)container模式讓容器共用一個(gè)IP網(wǎng)絡(luò),兩個(gè)容器之間可通過(guò)回環(huán)網(wǎng)絡(luò)接口相互通信。(6)容器之間使用--link選項(xiàng)建立傳統(tǒng)的容器互聯(lián)。(7)容器之間通過(guò)掛載主機(jī)目錄來(lái)實(shí)現(xiàn)相互之間的數(shù)據(jù)通信。7.如何能讓容器能夠被外部網(wǎng)絡(luò)訪問(wèn)?從外部訪問(wèn)容器內(nèi)的應(yīng)用程序必須要有明確的授權(quán),這是通過(guò)內(nèi)部端口映射來(lái)實(shí)現(xiàn)的。要讓容器能夠被外部網(wǎng)絡(luò)或者那些未連接到該容器的網(wǎng)絡(luò)上的Docker主機(jī)訪問(wèn),就要將容器的一個(gè)端口映射到Docker主機(jī)上的一個(gè)端口,允許從外部網(wǎng)絡(luò)通過(guò)該端口訪問(wèn)容器。8.Docker存儲(chǔ)驅(qū)動(dòng)主要有哪幾種?Docker存儲(chǔ)驅(qū)動(dòng)主要有aufs、overlay、overlay2、devicemapper、btrfs、zfs、vfs等。9.Docker存儲(chǔ)有哪幾種掛載類(lèi)型?各自適合哪些應(yīng)用場(chǎng)合?Docker存儲(chǔ)有卷、綁定掛載和tmpfs掛載這3種掛載類(lèi)型。卷適合以下應(yīng)用場(chǎng)合。(1)在多個(gè)正在運(yùn)行的容器之間共享數(shù)據(jù)。(2)當(dāng)Docker主機(jī)不能保證具有特定目錄結(jié)構(gòu)時(shí),卷有助于將Docker主機(jī)的配置與容器運(yùn)行時(shí)解耦。(3)當(dāng)需要將容器的數(shù)據(jù)存儲(chǔ)到遠(yuǎn)程主機(jī)或云提供商處,而不是本地時(shí)。(4)當(dāng)需要在兩個(gè)Docker主機(jī)之間備份、恢復(fù)或遷移數(shù)據(jù)時(shí)。綁定掛載適合以下應(yīng)用場(chǎng)合。(1)在主機(jī)和容器之間共享配置文件。(2)在Docker主機(jī)上的開(kāi)發(fā)環(huán)境和容器之間共享源代碼或構(gòu)建工件。(3)當(dāng)Docker主機(jī)上的目錄結(jié)構(gòu)保證與容器要求的綁定掛載一致時(shí)。在不需要將數(shù)據(jù)持久保存到主機(jī)或容器中時(shí),tmpfs掛載最合適。10.什么是匿名卷?匿名卷沒(méi)有指定明確名稱(chēng)的卷。匿名卷并不是沒(méi)有名稱(chēng),而是Docker自動(dòng)為匿名卷生成一個(gè)UUID作為名稱(chēng),這個(gè)UUID與容器一樣采用的是由64個(gè)十六進(jìn)制字符組成的字符串。11.什么情形下容器會(huì)填充卷?如果容器啟動(dòng)時(shí)掛載空白卷或者自動(dòng)創(chuàng)建新卷,而容器在掛載點(diǎn)目錄中已有文件或目錄,則該掛載點(diǎn)目錄的內(nèi)容會(huì)被復(fù)制到該卷中,也就是將容器中掛載點(diǎn)目錄的數(shù)據(jù)填充到該卷中。其他容器掛載并使用該卷時(shí)可以訪問(wèn)其中預(yù)先填充的內(nèi)容。12.什么情形下容器掛載目錄中的數(shù)據(jù)會(huì)被遮蓋?如果將主機(jī)上的目錄綁定掛載到容器上的非空目錄,則容器掛載的目錄中的現(xiàn)有內(nèi)容會(huì)被綁定掛載(主機(jī)上的目錄)所遮蓋。被遮蓋的目錄和文件不會(huì)被刪除或更改,但在使用綁定掛載時(shí)不可訪問(wèn)。項(xiàng)目四Docker容器與守護(hù)進(jìn)程運(yùn)維選擇題1、C2、A3、C4、D5、C6、A簡(jiǎn)答題1.容器自動(dòng)重啟有哪幾種策略?共有4種策略。(1)出時(shí)不要自動(dòng)重啟。這是默認(rèn)策略。(2)容器以非0狀態(tài)碼退出時(shí)重啟,且可以限定重啟次數(shù)。(3)不管是什么退出狀態(tài)都始終重啟容器,且無(wú)限次地重啟容器。(4)不管是什么退出狀態(tài)都始終重啟容器,但不考慮Docker守護(hù)進(jìn)程啟動(dòng)時(shí)就已經(jīng)停止的容器。2.如何在Docker停止時(shí)讓容器繼續(xù)保持運(yùn)行?啟用實(shí)時(shí)恢復(fù)功能,可以使容器在守護(hù)進(jìn)程不可用時(shí)保持活動(dòng)狀態(tài)。3.可以限制容器使用哪幾種資源?可以限制容器使用主機(jī)的CPU、內(nèi)存和磁盤(pán)I/O資源這3種資源。4.為什么要監(jiān)控容器?容器的日志管理為什么重要?在生產(chǎn)環(huán)境中往往會(huì)有大量的業(yè)務(wù)軟件在容器中運(yùn)行,需要監(jiān)控容器本身和容器所在主機(jī)的資源使用情況和性能。容器具有數(shù)量多、變化快的特性,容器的生命周期往往短暫且不固定,因此記錄日志就顯得非常必要,尤其是在生產(chǎn)環(huán)境中,日志是不可或缺的組成部分。日志管理有助于保持系統(tǒng)持續(xù)穩(wěn)定地運(yùn)行以及排查問(wèn)題。5.Docker對(duì)象的標(biāo)記是指什么?Docker對(duì)象的標(biāo)記是一種將元數(shù)據(jù)應(yīng)用于Docker對(duì)象的機(jī)制。標(biāo)記的形式是鍵值對(duì),以字符串的形式存儲(chǔ)??梢詾橐粋€(gè)對(duì)象指定多個(gè)標(biāo)記,但是同一個(gè)對(duì)象中的每個(gè)鍵值對(duì)必須是唯一的??梢允褂脴?biāo)記組織鏡像,記錄許可信息,注釋容器、卷和網(wǎng)絡(luò)之間的關(guān)系,或者執(zhí)行任何對(duì)業(yè)務(wù)或應(yīng)用程序有意義的操作。6.如何一次性清理多種類(lèi)型的對(duì)象?可以使用dockersystemprune命令一次性清理多種類(lèi)型的對(duì)象。該命令是刪除鏡像、容器和網(wǎng)絡(luò)的捷徑。在Docker17.06.1及更高版本中必須為dockersystemprune命令明確指定--volumes選項(xiàng)才會(huì)刪除卷。7.Docker守護(hù)進(jìn)程的配置有哪兩種方式?如何避免配置沖突?Docker守護(hù)進(jìn)程的配置有兩種,一種是使用JSON配置文件,另一種是使用選項(xiàng)手動(dòng)啟動(dòng)Docker守護(hù)進(jìn)程。只要不用這兩種配置方式同時(shí)定義同一選項(xiàng),就可以同時(shí)使用這兩種方式。8.如何解決daemon.json文件和啟動(dòng)腳本之間的沖突?需要調(diào)整相關(guān)選項(xiàng)或daemon.json文件來(lái)解決兩者的沖突。在使用systemd管理啟動(dòng)的Debian和Ubuntu系統(tǒng)上,在啟動(dòng)Docker守護(hù)進(jìn)程時(shí)會(huì)使用-H主機(jī)選項(xiàng)。如果在daemon.json文件中設(shè)置了hosts選項(xiàng),則會(huì)導(dǎo)致配置沖突,導(dǎo)致Docker無(wú)法啟動(dòng)。具體解決方法是創(chuàng)建一個(gè)新的配置文件/etc/systemd/system/docker.service.d/docker.conf,并加入以下選項(xiàng)設(shè)置,來(lái)屏蔽啟動(dòng)守護(hù)進(jìn)程時(shí)所使用的默認(rèn)-H選項(xiàng)。[Service]ExecStart=ExecStart=/usr/bin/dockerd項(xiàng)目五Docker容器編排選擇題1、D2、D3、D4、B5、A6、C簡(jiǎn)答題1.解釋Compose中項(xiàng)目、服務(wù)和容器的概念。項(xiàng)目表示需要實(shí)現(xiàn)的一個(gè)應(yīng)用程序,涵蓋了該應(yīng)用程序所需的所有資源,是由一組關(guān)聯(lián)的容器組成的一個(gè)完整業(yè)務(wù)單元。服務(wù)表示需要實(shí)現(xiàn)的一個(gè)子應(yīng)用程序,它以容器方式完成某項(xiàng)任務(wù)。一個(gè)服務(wù)運(yùn)行一個(gè)鏡像,但是它決定了鏡像的運(yùn)行方式。服務(wù)具體定義容器運(yùn)行的鏡像、參數(shù)和依賴(lài)關(guān)系。在Compose中,容器指的是服務(wù)的副本。每個(gè)服務(wù)可以以多個(gè)容器實(shí)例的形式運(yùn)行,可以更改容器實(shí)例的數(shù)量來(lái)增減服務(wù)數(shù)量,從而為進(jìn)程中的服務(wù)分配更多的計(jì)算資源。2.簡(jiǎn)述Compose工作機(jī)制。對(duì)于不同的docker-compose請(qǐng)求,DockerCompose將調(diào)用不同的處理方法來(lái)處理。DockerCompose必須與Docker引擎建立連接,并在該連接之上完成DockerAPI請(qǐng)求的處理。實(shí)際上DockerCompose是借助docker-py軟件完成這個(gè)任務(wù)的,docker-py是一個(gè)使用Python開(kāi)發(fā)并調(diào)用DockerAPI的軟件包。3.列舉DockerCompose主要應(yīng)用場(chǎng)景。(1)軟件開(kāi)發(fā)環(huán)境。在開(kāi)發(fā)軟件時(shí),DockerCompose命令行工具可用于創(chuàng)建隔離的環(huán)境,在其中運(yùn)行應(yīng)用程序并與之進(jìn)行交互。Compose文件提供了記錄和配置所有應(yīng)用程序的服務(wù)依賴(lài)關(guān)系的方式??梢允褂脝蝹€(gè)命令為每個(gè)項(xiàng)目創(chuàng)建和啟動(dòng)一個(gè)或多個(gè)容器。(2)自動(dòng)化測(cè)試環(huán)境。通過(guò)DockerCompose可以創(chuàng)建和銷(xiāo)毀用于測(cè)試集合的隔離測(cè)試環(huán)境。通過(guò)在Compose文件中定義完整的環(huán)境,可以?xún)H使用幾條命令就創(chuàng)建和銷(xiāo)毀這些環(huán)境。(3)單主機(jī)部署??梢允褂肈ockerCompose將應(yīng)用程序部署到遠(yuǎn)程Docker引擎中。Docker引擎可以是DockerMachine或整個(gè)Docker集群配置的單個(gè)實(shí)例。4.簡(jiǎn)述DockerCompose基本步驟。(1)使用Dockerfile定義應(yīng)用程序的環(huán)境,以便可以在任何地方分發(fā)。編排多容器的復(fù)雜應(yīng)用程序時(shí)容器的創(chuàng)建和運(yùn)行需要相應(yīng)的鏡像,而鏡像則要基于Dockerfile構(gòu)建。(2)使用Compose文件定義組成應(yīng)用程序的服務(wù)。(3)執(zhí)行docker-composeup命令啟動(dòng)整個(gè)應(yīng)用程序。5.簡(jiǎn)述Compose文件結(jié)構(gòu)。Compose文件可以包含4節(jié):version、services、networks和volumes。version節(jié)是必須指定的,而且總是位于文件的第一行,沒(méi)有任何下級(jí)節(jié)點(diǎn),定義了Compose文件格式的版本。services、networks和volumes節(jié)分別定義服務(wù)、網(wǎng)絡(luò)和卷(存儲(chǔ))資源配置,都由下級(jí)節(jié)點(diǎn)具體定義。6.服務(wù)定義需要注意哪些事項(xiàng)?在Compose文件中的services節(jié)中定義若干服務(wù),每個(gè)服務(wù)實(shí)際上是一個(gè)容器,需要基于鏡像運(yùn)行。每個(gè)Compose文件必須指定image或build鍵提供鏡像,其他鍵是可選的。就像使用dockercontainercreate命令一樣,Dockerfile中的指令,如CMD、EXPOSE、VOLUME、ENV等,默認(rèn)已被接受,不必再在Compose文件中定義它們。7.docker-compose的3個(gè)子命令up、run和start之間有什么區(qū)別?通常使用docker-composeup命令啟動(dòng)或重新啟動(dòng)在docker-compose.yml中定義的所有服務(wù)。在默認(rèn)的前臺(tái)模式下,將看到所有容器中的所有日志。在分離模式中,DockerCompose在啟動(dòng)容器后退出,但容器繼續(xù)在后臺(tái)運(yùn)行。docker-composerun命令用于運(yùn)行“一次性”或“臨時(shí)”任務(wù)。run命令的作用與dockerrun-ti打開(kāi)容器的交互式終端一樣,并返回與容器中進(jìn)程的退出狀態(tài)匹配的退出狀態(tài)。docker-composestart命令僅用于重新啟動(dòng)之前創(chuàng)建但已停止的容器,并不創(chuàng)建新的容器。8.如何共享Compose通用配置?使用多個(gè)Compose文件擴(kuò)展整個(gè)Compose文件就可以共享Compose通用配置。先定義一個(gè)基礎(chǔ)的Compose文件,在其中設(shè)置通用配置,然后再根據(jù)不同的環(huán)境進(jìn)行不同的配置,最后針對(duì)不同的環(huán)境啟動(dòng)不同配置的服務(wù)。項(xiàng)目六應(yīng)用程序容器化選擇題1、C2、A3、C4、B5、B6、D簡(jiǎn)答題1.應(yīng)用程序進(jìn)行容器化包括哪兩項(xiàng)工作?應(yīng)用程序容器化最主要的工作有兩項(xiàng),一是構(gòu)建應(yīng)用程序的鏡像,通常由開(kāi)發(fā)人員實(shí)施;二是基于應(yīng)用程序鏡像以容器方式部署和運(yùn)行應(yīng)用程序,主要由運(yùn)維人員實(shí)施。2.列舉編寫(xiě)Dockerfile的通用準(zhǔn)則。(1)創(chuàng)建短生命周期的容器。(2)正確理解構(gòu)建上下文。(3)使用.dockerignore文件排除與構(gòu)建無(wú)關(guān)的文件。(4)使用多階段構(gòu)建。(5)不要安裝不必要的包。(6)解耦應(yīng)用程序。(7)使鏡像層數(shù)最少。(8)對(duì)多行參數(shù)排序。(9)利用構(gòu)建緩存。3.最小鏡像scratch有什么作用?可以使用Docker保留的最小鏡像scratch作為構(gòu)建容器的起點(diǎn)。FROMscratch指令會(huì)通知構(gòu)建進(jìn)程,讓Dockerfile中的下一條命令成為鏡像中的第一個(gè)文件系統(tǒng)層。4.為什么要使用多階段構(gòu)建?Dockerfile中的每條指令都會(huì)為鏡像添加一個(gè)層,并且要在執(zhí)行到下一層之前清理所有不需要的文件。為了編寫(xiě)高效的Dockerfile,傳統(tǒng)的解決方案通常需要使用shell技巧和其他邏輯來(lái)盡可能地減小層的大小,并確保每一層僅包括來(lái)自上一層所必需的文件。而使用多階段構(gòu)建方案,可以在Dockerfile中使用多個(gè)FROM語(yǔ)句。每個(gè)FROM語(yǔ)句都可以使用不同的基礎(chǔ)鏡像,并且各自開(kāi)始一個(gè)新的構(gòu)建階段。可以有選擇性地將構(gòu)建從一個(gè)階段復(fù)制到另一個(gè)階段,并在最終鏡像中排除所有不需要的內(nèi)容。多階段構(gòu)建可以在無(wú)須減少中間層和文件數(shù)量的情況下大幅縮減最終鏡像的大小。因?yàn)殓R像在構(gòu)建過(guò)程的最終階段進(jìn)行構(gòu)建,所以可以充分利用緩存最小化鏡像的層。5.簡(jiǎn)述應(yīng)用程序容器化的基本步驟。應(yīng)用程序容器化大致分為以下幾個(gè)步驟。(1)準(zhǔn)備應(yīng)用程序源代碼。(2)創(chuàng)建Docker鏡像,為應(yīng)用程序的每個(gè)組件創(chuàng)建和測(cè)試單個(gè)容器。(3)將容器及其所需的支持基礎(chǔ)設(shè)施組裝成一個(gè)完整的應(yīng)用程序,這可以使用Docker棧文件或Kubernetes的Pod定義文件來(lái)編排。(4)測(cè)試、分發(fā)和部署完整的容器化應(yīng)用程序。6.容器化過(guò)程中如何處理應(yīng)用程序代碼?無(wú)論是源代碼,還是二進(jìn)制代碼,在對(duì)應(yīng)用程序構(gòu)建鏡像時(shí),都需要考慮是否將它們包括在鏡像中。在開(kāi)發(fā)環(huán)境中,通常不將程序復(fù)制到鏡像中,而是存放在主機(jī)的目錄中,以綁定掛載方式掛載到容器中,這樣便于程序的測(cè)試和修改。而在生產(chǎn)環(huán)境中,通常直接將程序復(fù)制到鏡像中進(jìn)行發(fā)布,因?yàn)閼?yīng)用程序已經(jīng)確定版本了。7.目前主流的開(kāi)源Java應(yīng)用程序服務(wù)器有哪幾種?目前主流的開(kāi)源Java應(yīng)用程序服務(wù)器有Tomcat、Jetty、GlassFish和WildFly。8.Maven工具有什么用?Maven主要用于Java的項(xiàng)目構(gòu)建、依賴(lài)管理和項(xiàng)目信息管理。它包含了一個(gè)項(xiàng)目對(duì)象模型(POM)、一組標(biāo)準(zhǔn)集合、一個(gè)項(xiàng)目生命周期、一個(gè)依賴(lài)管理系統(tǒng),以及用來(lái)運(yùn)行定義在生命周期階段中的插件目標(biāo)的邏輯。項(xiàng)目對(duì)象模型由pom.xml文件描述,Maven依據(jù)該文件實(shí)現(xiàn)項(xiàng)目管理。9.SpringBoot框架有什么優(yōu)勢(shì)?SpringBoot應(yīng)用程序可以采用哪幾種啟動(dòng)方式?SpringBoot框架具有以下優(yōu)點(diǎn)。(1)實(shí)現(xiàn)約定大于配置,是一個(gè)低配置的應(yīng)用系統(tǒng)框架。(2)提供內(nèi)置的Tomcat或Jetty容器,不需要部署War。(3)通過(guò)依賴(lài)的Jar包管理、自動(dòng)裝配技術(shù),容易實(shí)現(xiàn)與其他技術(shù)體系和工具的集成。(4)提供自動(dòng)配置的“starter”項(xiàng)目對(duì)象模型以簡(jiǎn)化Maven配置。(5)提供一些生產(chǎn)環(huán)境的特性。SpringBoot應(yīng)用程序可以采用以下4種啟動(dòng)方式。(1)通過(guò)Java主類(lèi)啟動(dòng)。(2)通過(guò)SpringBoot的Maven插件或Gradle插件啟動(dòng)。(3)生成為可執(zhí)行的.jar或.war包啟動(dòng)。(4)通過(guò)Servlet容器啟動(dòng),如外部的Tomcat。10.PHP應(yīng)用程序容器化有哪些特點(diǎn)?PHP應(yīng)用程序以腳本的形式提供,無(wú)須編譯,因而對(duì)其進(jìn)行容器化的主要工作是通過(guò)容器部署PHP應(yīng)用程序的運(yùn)行環(huán)境,并將PHP程序腳本集成到相應(yīng)的鏡像中,或者綁定掛載到容器上的相應(yīng)目錄下。PHP應(yīng)用程序大多要用到數(shù)據(jù)庫(kù),最常用的是MySQL數(shù)據(jù)庫(kù),通常通過(guò)實(shí)現(xiàn)LAMP平臺(tái)的容器化來(lái)部署和運(yùn)行PHP應(yīng)用程序。11.Python項(xiàng)目中的requirements.txt文件有什么用?Python項(xiàng)目中requirements.txt文件用于記錄所有的依賴(lài)包及其精確的版本,以便在新的環(huán)境下進(jìn)行部署。到其他環(huán)境中部署Python項(xiàng)目時(shí),可以使用pipinstall命令依據(jù)requirements.txt文件批量安裝所依賴(lài)的包。12.PythonWeb應(yīng)用中uWSGI有什么用?uWSGI是實(shí)現(xiàn)了uwsgi協(xié)議、WSGI規(guī)范和HTTP的一個(gè)軟件工具。uWSGI通過(guò)WSGI規(guī)范與PythonWeb服務(wù)進(jìn)程通信,然后通過(guò)uwsgi協(xié)議與Nginx進(jìn)行通信,最終Nginx通過(guò)HTTP將服務(wù)對(duì)外發(fā)布。uWSGI作為Web服務(wù)器,支持HTTP,當(dāng)然也支持靜態(tài)文件部署但不是很理想,一般選擇Nginx處理靜態(tài)文件。通常選擇Nginx和uWSGI相結(jié)合的部署方案,Nginx負(fù)責(zé)靜態(tài)內(nèi)容發(fā)布,uWSGI負(fù)責(zé)動(dòng)態(tài)內(nèi)容發(fā)布,二者配合共同提供Web服務(wù),以實(shí)現(xiàn)提高效率和負(fù)載均衡等目的。項(xiàng)目七自動(dòng)化構(gòu)建與持續(xù)集成選擇題1、A2、B3、A4、D5、C6、D簡(jiǎn)答題1.代碼管理中項(xiàng)目創(chuàng)建的默認(rèn)分支是什么?它有什么作用?項(xiàng)目創(chuàng)建時(shí)的默認(rèn)分支是master。它是代碼主干,一般不用于開(kāi)發(fā),而是用于保留當(dāng)前線上發(fā)布的版本。2.代碼倉(cāng)庫(kù)是通過(guò)什么觸發(fā)鏡像倉(cāng)庫(kù)的自動(dòng)功能的?代碼倉(cāng)庫(kù)使用Webhook觸發(fā)新的構(gòu)建以產(chǎn)生Docker鏡像。Webhook是一種Web回調(diào)或者HTTP的推送API,是向App或者其他應(yīng)用程序提供實(shí)時(shí)信息的一種方式。3.自動(dòng)化構(gòu)建鏡像有哪些優(yōu)點(diǎn)?自動(dòng)化構(gòu)建具有以下優(yōu)點(diǎn)。(1)自動(dòng)化構(gòu)建的鏡像完全符合期望。(2)任何可以訪問(wèn)代碼倉(cāng)庫(kù)的人都可以使用Dockerfile。(3)代碼修改之后鏡像倉(cāng)庫(kù)會(huì)自動(dòng)更新。(4)可以充分利用第三方服務(wù)器資源,節(jié)省自己的計(jì)算資源和時(shí)間。4.簡(jiǎn)述Git工具的主要用途。Git工具的主要用途如下。(1)從遠(yuǎn)程倉(cāng)庫(kù)復(fù)制完整的Git倉(cāng)庫(kù)到本地倉(cāng)庫(kù)。(2)在本地根據(jù)不同的開(kāi)發(fā)目的創(chuàng)建代碼分支、修改代碼。(3)從本地倉(cāng)庫(kù)向遠(yuǎn)程倉(cāng)庫(kù)提交代碼。(4)代碼分支合并與主干合并。5.什么是持續(xù)集成?什么是持續(xù)部署?持續(xù)集成是指開(kāi)發(fā)應(yīng)用程序時(shí)頻繁地向主干提交代碼,新提交的代碼在最終合并到主干前,需要經(jīng)過(guò)編譯和自動(dòng)化測(cè)試工作流進(jìn)行驗(yàn)證。持續(xù)集成的目標(biāo)是讓產(chǎn)品可以快速迭代,同時(shí)還能保持高質(zhì)量。持續(xù)部署是指通過(guò)自動(dòng)化的構(gòu)建、測(cè)試和部署循環(huán)來(lái)快速交付高質(zhì)量的軟件產(chǎn)品。它要實(shí)現(xiàn)的目標(biāo)是代碼在任何時(shí)刻都是可部署的,可以進(jìn)入生產(chǎn)階段。6.簡(jiǎn)述Drone持續(xù)集成和持續(xù)部署的基本流程。Drone持續(xù)集成和持續(xù)部署的基本流程如下。(1)開(kāi)發(fā)人員使用Git工具提交源代碼到代碼管理系統(tǒng)。(2)源代碼碼管理系統(tǒng)通過(guò)設(shè)置的Webhook觸發(fā)Drone的流水線。(3)Drone執(zhí)行工作流定義的任務(wù),完成項(xiàng)目的測(cè)試、構(gòu)建和部署等。7.Drone插件有什么作用?Drone插件是工作流中用于封裝命令、可以共享和重用的容器,可以用來(lái)構(gòu)建、發(fā)布項(xiàng)目,發(fā)送通知等。8.Drone中服務(wù)器與代理各自職責(zé)是什么?Drone本身采用服務(wù)器與代理相結(jié)合的架構(gòu),服務(wù)器監(jiān)控代理組件的狀態(tài),并收集和展示CI/CD結(jié)果,代理具體執(zhí)行.drone.yml文件中所定義的CI/CD指令。當(dāng)然,Drone服務(wù)器同樣也可以執(zhí)行CI/CD指令所定義的任務(wù)。9.為什么drone-agent服務(wù)需要綁定掛載/var/run/docker.sock文件?/var/run/docker.sock是一個(gè)Docker客戶(hù)端和Docker守護(hù)進(jìn)程在本地進(jìn)行通信的UNIXSocket文件,可以讓一個(gè)進(jìn)程通過(guò)與處理文件類(lèi)似的方式和另一個(gè)進(jìn)程通信,即進(jìn)程間通信。當(dāng)在主機(jī)上安裝并且啟動(dòng)Docker時(shí),Docker守護(hù)進(jìn)程會(huì)偵聽(tīng)該Socket文件,當(dāng)一個(gè)連接請(qǐng)求到來(lái)時(shí),它會(huì)使用標(biāo)準(zhǔn)I/O讀寫(xiě)數(shù)據(jù)。容器綁定掛載/var/run/docker.sock文件之后,就可以在容器中與Docker守護(hù)進(jìn)程通信,執(zhí)行各種管理操作,這樣的容器權(quán)限會(huì)非常高,能夠管理Docker主機(jī)上的容器。drone-agent服務(wù)作為容器運(yùn)行,它本身還要運(yùn)行容器(每個(gè)工作流步驟就是一個(gè)容器),需要擁有管理容器的能力,也就需要綁定掛載/var/run/docker.sock文件。項(xiàng)目八Docker集群配置與應(yīng)用選擇題1、A2、C3、C4、D5、B6、D7、D8、C簡(jiǎn)答題1.什么是Swarm集群?Swarm本意是蜂群,Docker使用這個(gè)概念表示由多個(gè)Docker引擎組成的一個(gè)整體,也就是集群。一個(gè)Swarm集群包括多個(gè)以Swarm模式運(yùn)行的Docker主機(jī),它們充當(dāng)管理器,負(fù)責(zé)管理成員和代理;或者充當(dāng)工作者,負(fù)責(zé)運(yùn)行Swarm服務(wù)。Swarm集群管理的對(duì)象主要是服務(wù),而不是獨(dú)立的容器。2.什么是Swarm節(jié)點(diǎn)?節(jié)點(diǎn)按角色分為哪幾種類(lèi)型?Swarm集群集群由一個(gè)或多個(gè)節(jié)點(diǎn)組成。這些節(jié)點(diǎn)可以是運(yùn)行Docker引擎的物理機(jī)或虛擬機(jī)。節(jié)點(diǎn)按角色分為管理器節(jié)點(diǎn)和工作者節(jié)點(diǎn)兩種類(lèi)型。3.什么是Swarm服務(wù)?什么是Swarm任務(wù)?Swarm服務(wù)用于定義要在節(jié)點(diǎn)上執(zhí)行的任務(wù),是整個(gè)集群系統(tǒng)的核心結(jié)構(gòu),也是用戶(hù)與Swarm集群交互的基本單元。用戶(hù)在創(chuàng)建服務(wù)時(shí)可以指定要使用的容器鏡像和要在容器中執(zhí)行的命令。Swarm服務(wù)相對(duì)于獨(dú)立容器的一個(gè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論