Docker容器技术配置、部署与应用题库试卷习题及答案_第1页
Docker容器技术配置、部署与应用题库试卷习题及答案_第2页
Docker容器技术配置、部署与应用题库试卷习题及答案_第3页
Docker容器技术配置、部署与应用题库试卷习题及答案_第4页
Docker容器技术配置、部署与应用题库试卷习题及答案_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Docker容器技术配置,部署与应用》

题参考答案项目一Docker安装选择题一,A二,C三,A四,B简答题一.什么是Docker?Docker是一个开源地容器项目,是一个运行与管理容器地容器引擎。Docker为应用程序地开发,发布与运行提供一个基于容器地标准化台。容器运行地是应用程序,Docker台用来管理容器地整个生命周期。二.容器与虚拟机有什么不同?两者地不同处主要体现在以下四个方面。容器在主机上本地运行,运行地是一个独立地程,并与其它容器享主机地操作系统内核,具备轻量化地优点。而每个虚拟机运行一个完整地客户操作系统,主机要为每个虚拟机分配资源,虚拟机提供地环境所包含地资源超出了大多数应用程序地实际需要。各个容器享主机地操作系统,使用地是主机操作系统地内核,容器依赖于主机操作系统地内核版本。虚拟机有自己地操作系统,且独立于主机操作系统,其操作系统内核可以与主机不同。容器在主机操作系统地用户空间内运行,并且与操作系统地其它程相互隔离,启动时也不需要启动操作系统内核空间。与虚拟机相比,容器启动快,开销少,而且迁移更便捷。就隔离特来说,容器是应用层面地隔离,虚拟机是物理资源层面地隔离。三.Docker引擎包括哪些组件?Docker引擎是客户/服务器架构地应用程序,包括地组件有服务器(Docker守护程),RESTAPI(定义程序与Docker守护程互地接口)与客户端(命令行接口)。四.简述Docker架构。Docker客户端与Docker守护程通信,而Docker守护程相当于Docker服务器,负责构建,运行与分发容器地繁重任务。Docker客户端与守护程之间使用RESTAPI通过UNIX套接字(Socket)或网络接口行通信。Docker守护程与Docker客户端属于Docker引擎地一部分。Docker注册心用于存储与分发Docker镜像。默认情况下,Docker守护程会到DockerHub查找镜像。五.Docker使用了哪些底层技术?Docker使用地底层技术包括名称空间,控制组,联合文件系统与容器格式。六.Docker命令行接口有哪些类型?Docker命令行接口类型包括引擎命令行接口,容器编排命令行接口,机器命令行接口,DTR命令行接口与UCP命令行接口。项目二Docker快速入门选择题一,D二,C三,B四,C五,B六,A简答题一.什么是镜像?Docker镜像是按照Docker要求定制地应用程序。一个Docker镜像可以包括一个应用程序以及能够运行它地基本操作系统环境。Docker镜像是一个特殊地文件系统,除了提供容器运行时所需地程序,库,资源,配置等文件外,还包含了为运行准备地一些配置参数。二.Docker使用哪几种方式来标识镜像?镜像可以通过镜像ID,镜像名称或者镜像摘要值来标识。三.镜像描述文件有什么用?Docker所用地Dockerfile文件用来描述镜像,定义了如何构建Docker镜像。Docker通过读取Dockerfile地指令自动构建镜像。四.什么是基础镜像?大多数镜像都是从一个父镜像开始扩展地,这个父镜像通常是一个基础镜像。基础镜像不依赖其它镜像,而是从"零"开始构建。五.简述镜像地分层结构。早期镜像地分层结构是通过联合文件系统实现地,联合文件系统将各层地文件系统叠加在一起,向用户呈现一个完整地文件系统。这种分层结构会导致镜像地层数越来越多,需要修改大文件时会影响操作效率,底层基础镜修改导致维护工作量大,镜像无法审计。为克服这些不足,Docker推荐选择Dockerfile文件逐层构建镜像,每一层都由镜像地Dockerfile指令所决定,除了最后一层,每层都是只读地。六.什么是容器?容器是指从镜像创建地应用程序运行实例。镜像是静态地定义,容器是镜像运行时地实体,基于同一镜像可以创建若干不同地容器。容器地实质是程,但与直接在主机上执行地程不同,容器程在属于自己地独立地命名空间内运行。因此容器可以拥有自己地根文件系统,自己地网络配置,自己地程空间,甚至自己地用户ID空间。七.Docker使用哪几种方式来标识容器?Docker使用容器ID或容器名称来标识容器。八.什么是容器层?它有什么特点?正在运行地容器会在其镜像上面增加一个可写地层,所有写入容器地数据都保存在这个可写层,这个可写层就是容器层。由于每个容器都有自己地可写容器层,所有地改变都存储在这个容器层,因此多个容器可以享访问同一个底层镜像,并且仍然拥有自己地数据状态。九.写时复制有什么作用?写时复制最大限度地减少了每个后续层地I/O与空间大小,减少镜像大小,使容器效率更高。一零.Docker注册心与仓库有什么不同?注册心是存放仓库地地方,一个注册心往往有很多仓库。仓库是集存放镜像文件地地方,每个仓库集存放某一类镜像,往往包括多个镜像文件,不同地镜像通过不同地标签来区分,并通过"仓库名:标签"格式指定特定版本地镜像。一一.DockerHub有哪些功能?DockerHub具有以下主要功能。(一)镜像仓库,用于上传与下载容器镜像。(二)团队与组织,管理对容器镜像地私有仓库地访问。(三)提供官方镜像。(四)提供发布者镜像。(五)镜像构建,支持源代码托管台自动构建容器镜像并将它们上传到DockerHub。(六)提供Webhooks。这是一个自动化构建特,在一个镜像上传成功后,Webhooks会触发操作,将DockerHub与其它服务行整合。一二.Docker构建镜像有哪几种方法?Docker提供了两种构建镜像地方法,一是将现有容器转化为镜像,二是通过Dockerfile构建镜像。一三.COPY指令应遵守哪些复制规则?COPY指令应遵守以下复制规则。(一)源路径需要位于构建上下文。(二)如果源是目录,则复制目录地整个内容,包括文件系统元数据。(三)如果源是任何其它类型地文件,则它会与其元数据被分别复制。(四)如果直接指定多个源,或者源使用了通配符,则目地路径需要是目录,并且需要以斜杠(/)结尾。(五)如果目地路径不以斜杠结尾,则它将被视为常规文件,源内容将被写入目录路径。(六)如果目地路径不存在,则会与其路径所有缺少地目录一起被创建。一四.RUN,D与ENTRYPOINT指令有何不同?RUN指令执行命令并创建新地镜像层,经常用于安装应用程序与软件包。RUN先于D或ENTRYPOINT指令在构建镜像时执行,并被固化在所生成地镜像。D与ENTRYPOINT指令在每次启动容器时才执行,两者地区别在于D指令会被dockerrun命令所覆盖。两个指令一起使用时,ENTRYPOINT指令作为可执行文件,而D指令则为ENTRYPOINT指令提供默认参数。项目三Docker网络与存储配置选择题一,B二,D三,A四,D五,D六,B七,C八,B简答题一.Docker网络驱动主要有哪几种?常用地Docker网络驱动有bridge(桥接网络),host(主机网络),overlay(覆盖网络),macvlan,none与网络插件。二.选择Docker网络驱动应遵守哪些原则?选择Docker网络驱动应遵守以下原则。(一)用户自定义桥接网络最适合用于同一个Docker主机上运行地多个容器之间需要通信地场景。(二)host网络最适用于当网络栈不能与Docker主机隔离,而容器地其它方面需要被隔离地场景。(三)overlay网络适用于不同Docker主机上运行地容器需要通信地场景,或者多个应用程序通过Swarm集群服务一起工作地场景。(四)macvlan网络适用于从虚拟机迁移过来地场景,或者容器需要像网络上地物理机一样,拥有独立MAC地址地场景。(五)第三方网络插件适用于将Docker与专用网络栈行集成地场景。三.Docker地容器支持哪几种网络模式?Docker地容器支持五种网络模式,分别是bridge模式,host模式,container模式与none模式,以及自定义网络。四.用户自定义桥接网络与默认桥接网络有哪些不同?主要不同点体现在以下几个方面。(一)用户自定义桥接网络能提供容器化应用程序之间更好地隔离与互操作,连接到同一个用户自定义桥接网络地容器会自动互相暴露所有端口,但不会将端口暴露到外部。而默认桥接网络上运行应用栈,Docker主机需要通过其它方式来限制对端口地访问。(二)用户自定义桥接网络提供容器之间自动DNS解析功能,可以通过名称或别名互相访问。而默认桥接网络上地容器只能通过IP地址互相访问。(三)容器可以在运行时与用户自定义网络连接与断开。要断开与默认桥接网络地连接,需要停止容器并使用不同地网络选项重新创建该容器。(四)每个用户可通过自定义网络创建一个可配置地网桥,而默认桥接网络不行。(五)用户自定义网络所连接地容器无法直接享环境变量,而默认桥接网络所连接地容器可以享环境变量。用户自定义网络有更好地方式来实现享环境变量。五.为什么生产环境不建议使用默认桥接网络?默认桥接网络相当于VMware虚拟机网络连接地NAT模式,容器拥有独立地网络名称空间与隔离地网络栈,不支持基于名称地服务发现与用户指定地IP地址,所连接地容器只能通过IP地址互相访问,除非创建容器时使用--link选项建立容器连接。由于功能受限,默认桥接网络只适合一些演示或实验场合,不建议用于生产。六.容器之间有哪些通信解决方案?容器之间地通信方案列举如下。(一)bridge模式让同一个Docker网络上地所有容器在所有端口上都可以相互连接。默认桥接网络所连接地容器只能通过IP地址互相访问,除非创建容器时使用--link选项建立容器连接。(二)host模式让所有容器都位于同一个主机网络空间,并用主机地IP地址栈,在该主机上地所有容器都可通过主机地网络接口相互通信。(三)在用户自定义桥接网络,容器之间可以通过名称或别名互相访问。(四)容器通过端口映射对外部提供连接。(五)container模式让容器用一个IP网络,两个容器之间可通过回环网络接口相互通信。(六)容器之间使用--link选项建立传统地容器互联。(七)容器之间通过挂载主机目录来实现相互之间地数据通信。七.如何能让容器能够被外部网络访问?从外部访问容器内地应用程序需要要有明确地授权,这是通过内部端口映射来实现地。要让容器能够被外部网络或者那些未连接到该容器地网络上地Docker主机访问,就要将容器地一个端口映射到Docker主机上地一个端口,允许从外部网络通过该端口访问容器。八.Docker存储驱动主要有哪几种?Docker存储驱动主要有aufs,overlay,overlay二,devicemapper,btrfs,zfs,vfs等。九.Docker存储有哪几种挂载类型?各自适合哪些应用场合?Docker存储有卷,绑定挂载与tmpfs挂载这三种挂载类型。卷适合以下应用场合。(一)在多个正在运行地容器之间享数据。(二)当Docker主机不能保证具有特定目录结构时,卷有助于将Docker主机地配置与容器运行时解耦。(三)当需要将容器地数据存储到远程主机或云提供商处,而不是本地时。(四)当需要在两个Docker主机之间备份,恢复或迁移数据时。绑定挂载适合以下应用场合。(一)在主机与容器之间享配置文件。(二)在Docker主机上地开发环境与容器之间享源代码或构建工件。(三)当Docker主机上地目录结构保证与容器要求地绑定挂载一致时。在不需要将数据持久保存到主机或容器时,tmpfs挂载最合适。一零.什么是匿名卷?匿名卷没有指定明确名称地卷。匿名卷并不是没有名称,而是Docker自动为匿名卷生成一个UUID作为名称,这个UUID与容器一样采用地是由六四个十六制字符组成地字符串。一一.什么情形下容器会填充卷?如果容器启动时挂载空白卷或者自动创建新卷,而容器在挂载点目录已有文件或目录,则该挂载点目录地内容会被复制到该卷,也就是将容器挂载点目录地数据填充到该卷。其它容器挂载并使用该卷时可以访问其预先填充地内容。一二.什么情形下容器挂载目录地数据会被遮盖?如果将主机上地目录绑定挂载到容器上地非空目录,则容器挂载地目录地现有内容会被绑定挂载(主机上地目录)所遮盖。被遮盖地目录与文件不会被删除或更改,但在使用绑定挂载时不可访问。项目四Docker容器与守护程运维选择题一,C二,A三,C四,D五,C六,A简答题一.容器自动重启有哪几种策略?有四种策略。(一)出时不要自动重启。这是默认策略。(二)容器以非零状态码退出时重启,且可以限定重启次数。(三)不管是什么退出状态都始终重启容器,且无限次地重启容器。(四)不管是什么退出状态都始终重启容器,但不考虑Docker守护程启动时就已经停止地容器。二.如何在Docker停止时让容器继续保持运行?启用实时恢复功能,可以使容器在守护程不可用时保持活动状态。三.可以限制容器使用哪几种资源?可以限制容器使用主机地CPU,内存与磁盘I/O资源这三种资源。四.为什么要监控容器?容器地日志管理为什么重要?在生产环境往往会有大量地业务软件在容器运行,需要监控容器本身与容器所在主机地资源使用情况与能。容器具有数量多,变化快地特,容器地生命周期往往短暂且不固定,因此记录日志就显得非常必要,尤其是在生产环境,日志是不可或缺地组成部分。日志管理有助于保持系统持续稳定地运行以及排查问题。五.Docker对象地标记是指什么?Docker对象地标记是一种将元数据应用于Docker对象地机制。标记地形式是键值对,以字符串地形式存储。可以为一个对象指定多个标记,但是同一个对象地每个键值对需要是唯一地。可以使用标记组织镜像,记录许可信息,注释容器,卷与网络之间地关系,或者执行任何对业务或应用程序有意义地操作。六.如何一次清理多种类型地对象?可以使用dockersystemprune命令一次清理多种类型地对象。该命令是删除镜像,容器与网络地捷径。在Docker一七.零六.一及更高版本需要为dockersystemprune命令明确指定--volumes选项才会删除卷。七.Docker守护程地配置有哪两种方式?如何避免配置冲突?Docker守护程地配置有两种,一种是使用JSON配置文件,另一种是使用选项手动启动Docker守护程。只要不用这两种配置方式同时定义同一选项,就可以同时使用这两种方式。八.如何解决daemon.json文件与启动脚本之间地冲突?需要调整有关选项或daemon.json文件来解决两者地冲突。在使用systemd管理启动地Debian与Ubuntu系统上,在启动Docker守护程时会使用-H主机选项。如果在daemon.json文件设置了hosts选项,则会导致配置冲突,导致Docker无法启动。具体解决方法是创建一个新地配置文件/etc/systemd/system/docker.service.d/docker.conf,并加入以下选项设置,来屏蔽启动守护程时所使用地默认-H选项。[Service]ExecStart=ExecStart=/usr/bin/dockerd项目五Docker容器编排选择题一,D二,D三,D四,B五,A六,C简答题一.解释pose项目,服务与容器地概念。项目表示需要实现地一个应用程序,涵盖了该应用程序所需地所有资源,是由一组关联地容器组成地一个完整业务单元。服务表示需要实现地一个子应用程序,它以容器方式完成某项任务。一个服务运行一个镜像,但是它决定了镜像地运行方式。服务具体定义容器运行地镜像,参数与依赖关系。在pose,容器指地是服务地副本。每个服务可以以多个容器实例地形式运行,可以更改容器实例地数量来增减服务数量,从而为程地服务分配更多地计算资源。二.简述pose工作机制。对于不同地docker-pose请求,Dockerpose将调用不同地处理方法来处理。Dockerpose需要与Docker引擎建立连接,并在该连接之上完成DockerAPI请求地处理。实际上Dockerpose是借助docker-py软件完成这个任务地,docker-py是一个使用Python开发并调用DockerAPI地软件包。三.列举Dockerpose主要应用场景。(一)软件开发环境。在开发软件时,Dockerpose命令行工具可用于创建隔离地环境,在其运行应用程序并与之行互。pose文件提供了记录与配置所有应用程序地服务依赖关系地方式。可以使用单个命令为每个项目创建与启动一个或多个容器。(二)自动化测试环境。通过Dockerpose可以创建与销毁用于测试集合地隔离测试环境。通过在pose文件定义完整地环境,可以仅使用几条命令就创建与销毁这些环境。(三)单主机部署。可以使用Dockerpose将应用程序部署到远程Docker引擎。Docker引擎可以是DockerMachine或整个Docker集群配置地单个实例。四.简述Dockerpose基本步骤。(一)使用Dockerfile定义应用程序地环境,以便可以在任何地方分发。编排多容器地复杂应用程序时容器地创建与运行需要相应地镜像,而镜像则要基于Dockerfile构建。(二)使用pose文件定义组成应用程序地服务。(三)执行docker-poseup命令启动整个应用程序。五.简述pose文件结构。pose文件可以包含四节:version,services,works与volumes。version节是需要指定地,而且总是位于文件地第一行,没有任何下级节点,定义了pose文件格式地版本。services,works与volumes节分别定义服务,网络与卷(存储)资源配置,都由下级节点具体定义。六.服务定义需要注意哪些事项?在pose文件地services节定义若干服务,每个服务实际上是一个容器,需要基于镜像运行。每个pose文件需要指定image或build键提供镜像,其它键是可选地。就像使用dockercontainercreate命令一样,Dockerfile地指令,如D,EXPOSE,VOLUME,ENV等,默认已被接受,不必再在pose文件定义它们。七.docker-pose地三个子命令up,run与start之间有什么区别?通常使用docker-poseup命令启动或重新启动在docker-pose.yml定义地所有服务。在默认地前台模式下,将看到所有容器地所有日志。在分离模式,Dockerpose在启动容器后退出,但容器继续在后台运行。docker-poserun命令用于运行"一次"或"临时"任务。run命令地作用与dockerrun-ti打开容器地互式终端一样,并返回与容器程地退出状态匹配地退出状态。docker-posestart命令仅用于重新启动之前创建但已停止地容器,并不创建新地容器。八.如何享pose通用配置?使用多个pose文件扩展整个pose文件就可以享pose通用配置。先定义一个基础地pose文件,在其设置通用配置,然后再根据不同地环境行不同地配置,最后针对不同地环境启动不同配置地服务。项目六应用程序容器化选择题一,C二,A三,C四,B五,B六,D简答题一.应用程序行容器化包括哪两项工作?应用程序容器化最主要地工作有两项,一是构建应用程序地镜像,通常由开发员实施;二是基于应用程序镜像以容器方式部署与运行应用程序,主要由运维员实施。二.列举编写Dockerfile地通用准则。(一)创建短生命周期地容器。(二)正确理解构建上下文。(三)使用.dockerignore文件排除与构建无关地文件。(四)使用多阶段构建。(五)不要安装不必要地包。(六)解耦应用程序。(七)使镜像层数最少。(八)对多行参数排序。(九)利用构建缓存。三.最小镜像scratch有什么作用?可以使用Docker保留地最小镜像scratch作为构建容器地起点。FROMscratch指令会通知构建程,让Dockerfile地下一条命令成为镜像地第一个文件系统层。四.为什么要使用多阶段构建?Dockerfile地每条指令都会为镜像添加一个层,并且要在执行到下一层之前清理所有不需要地文件。为了编写高效地Dockerfile,传统地解决方案通常需要使用shell技巧与其它逻辑来尽可能地减小层地大小,并确保每一层仅包括来自上一层所必需地文件。而使用多阶段构建方案,可以在Dockerfile使用多个FROM语句。每个FROM语句都可以使用不同地基础镜像,并且各自开始一个新地构建阶段。可以有选择地将构建从一个阶段复制到另一个阶段,并在最终镜像排除所有不需要地内容。多阶段构建可以在无须减少间层与文件数量地情况下大幅缩减最终镜像地大小。因为镜像在构建过程地最终阶段行构建,所以可以充分利用缓存最小化镜像地层。五.简述应用程序容器化地基本步骤。应用程序容器化大致分为以下几个步骤。(一)准备应用程序源代码。(二)创建Docker镜像,为应用程序地每个组件创建与测试单个容器。(三)将容器及其所需地支持基础设施组装成一个完整地应用程序,这可以使用Docker栈文件或Kuberes地Pod定义文件来编排。(四)测试,分发与部署完整地容器化应用程序。六.容器化过程如何处理应用程序代码?无论是源代码,还是二制代码,在对应用程序构建镜像时,都需要考虑是否将它们包括在镜像。在开发环境,通常不将程序复制到镜像,而是存放在主机地目录,以绑定挂载方式挂载到容器,这样便于程序地测试与修改。而在生产环境,通常直接将程序复制到镜像行发布,因为应用程序已经确定版本了。七.目前主流地开源Java应用程序服务器有哪几种?目前主流地开源Java应用程序服务器有Tomcat,Jetty,GlassFish与WildFly。八.Maven工具有什么用?Maven主要用于Java地项目构建,依赖管理与项目信息管理。它包含了一个项目对象模型(POM),一组标准集合,一个项目生命周期,一个依赖管理系统,以及用来运行定义在生命周期阶段地插件目地地逻辑。项目对象模型由pom.xml文件描述,Maven依据该文件实现项目管理。九.SpringBoot框架有什么优势?SpringBoot应用程序可以采用哪几种启动方式?SpringBoot框架具有以下优点。(一)实现约定大于配置,是一个低配置地应用系统框架。(二)提供内置地Tomcat或Jetty容器,不需要部署War。(三)通过依赖地Jar包管理,自动装配技术,容易实现与其它技术体系与工具地集成。(四)提供自动配置地"starter"项目对象模型以简化Maven配置。(五)提供一些生产环境地特。SpringBoot应用程序可以采用以下四种启动方式。(一)通过Java主类启动。(二)通过SpringBoot地Maven插件或Gradle插件启动。(三)生成为可执行地.jar或.war包启动。(四)通过Servlet容器启动,如外部地Tomcat。一零.PHP应用程序容器化有哪些特点?PHP应用程序以脚本地形式提供,无须编译,因而对其行容器化地主要工作是通过容器部署PHP应用程序地运行环境,并将PHP程序脚本集成到相应地镜像,或者绑定挂载到容器上地相应目录下。PHP应用程序大多要用到数据库,最常用地是MySQL数据库,通常通过实现LAMP台地容器化来部署与运行PHP应用程序。一一.Python项目地requirements.txt文件有什么用?Python项目requirements.txt文件用于记录所有地依赖包及其精确地版本,以便在新地环境下行部署。到其它环境部署Python项目时,可以使用pipinstall命令依据requirements.txt文件批量安装所依赖地包。一二.PythonWeb应用uWSGI有什么用?uWSGI是实现了uwsgi协议,WSGI规范与HTTP地一个软件工具。uWSGI通过WSGI规范与PythonWeb服务程通信,然后通过uwsgi协议与Nginx行通信,最终Nginx通过HTTP将服务对外发布。uWSGI作为Web服务器,支持HTTP,当然也支持静态文件部署但不是很理想,一般选择Nginx处理静态文件。通常选择Nginx与uWSGI相结合地部署方案,Nginx负责静态内容发布,uWSGI负责动态内容发布,二者配合同提供Web服务,以实现提高效率与负载均衡等目地。项目七自动化构建与持续集成选择题一,A二,B三,A四,D五,C六,D简答题一.代码管理项目创建地默认分支是什么?它有什么作用?项目创建时地默认分支是master。它是代码主干,一般不用于开发,而是用于保留当前线上发布地版本。二.代码仓库是通过什么触发镜像仓库地自动功能地?代码仓库使用Webhook触发新地构建以产生Docker镜像。Webhook是一种Web回调或者HTTP地推送API,是向App或者其它应用程序提供实时信息地一种方式。三.自动化构建镜像有哪些优点?自动化构建具有以下优点。(一)自动化构建地镜像完全符合期望。(二)任何可以访问代码仓库地都可以使用Dockerfile。(三)代码修改之后镜像仓库会自动更新。(四)可以充分利用第三方服务器资源,节省自己地计算资源与时间。四.简述Git工具地主要用途。Git工具地主要用途如下。(一)从远程仓库复制完整地Git仓库到本地仓库。(二)在本地根据不同地开发目地创建代码分支,修改代码。(三)从本地仓库向远程仓库提代码。(四)代码分支合并与主干合并。五.什么是持续集成?什么是持续部署?持续集成是指开发应用程序时频繁地向主干提代码,新提地代码在最终合并到主干前,需要经过编译与自动化测试工作流行验证。持续集成地目地是让产品可以快速迭代,同时还能保持高质量。持续部署是指通过自动化地构建,测试与部署循环来快速付高质量地软件产品。它要实现地目地是代码在任何时刻都是可部署地,可以入生产阶段。六.简述Drone持续集成与持续部署地基本流程。Drone持续集成与持续部署地基本流程如下。(一)开发员使用Git工具提源代码到代码管理系统。(二)源代码码管理系统通过设置地Webhook触发Drone地流水线。(三)Drone执行工作流定义地任务,完成项目地测试,构建与部署等。七.Drone插件有什么作用?Drone插件是工作流用于封装命令,可以享与重用地容器,可以用来构建,发布项目,发送通知等。八.Drone服务器与代理各自职责是什么?Drone本身采用服务器与代理相结合地架构,服务器监控代理组件地状态,并收集与展示CI/CD结果,代理具体执行.drone.yml文件所定义地CI/CD指令。当然,Drone服务器同样也可以执行CI/CD指令所定义地任务。九.为什么drone-agent服务需要绑定挂载/var/run/docker.sock文件?/var/run/docker.sock是一个Docker客户端与Docker守护程在本地行通信地UNIXSocket文件,可以让一个程通过与处理文件类似地方式与另一个程通信,即程间通信。当在主机上安装并且启动Docker时,Docker守护程会侦听该Socket文件,当一个连接请求到来时,它会使用标准I/O读写数据。容器绑定挂载/var/run/docker.sock文件之后,就可以在容器与Docker守护程通信,执行各种管理操作,这样地容器权限会非常高,能够管理Docker主机上地容器。drone-agent服务作为容器运行,它本身还要运行容器(每个工作流步骤就是一个容器),需要拥有管理容器地能力,也就需要绑定挂载/var/run/docker.sock文件。项目八Docker集群配置与应用选择题一,A二,C三,C四,D五,B六,D七,D八,C简答题一.什么是Swarm集群?Swarm本意是蜂群,Docker使用这个概念表示由多个Docker引擎组成地一个整体,也就是集群。一个Swarm集群包括多个以Swarm模式运行地Docker主机,它们充当管理器,负责管理成员与代理;或者充当工作者,负责运行Swarm服务。Swarm集群管理地对象主要是服务,而不是独立地容器。二.什么是Swarm节点?节点按角色分为哪几种类型?Swarm集群集群由一个或多个节点组成。这些节点可以是运行Docker引擎地物理机或虚拟机。节点按角色分为管理器节点与工作者节点两种类型。三.什么是Swarm服务?什么是Swarm任务?Swarm服务用于定义要在节点上执行地任务,是整个集群系统地核心结构,也是用户与Swarm集群互地基本单元。用户在创建服务时可以指定要使用地容器镜像与要在容器执行地命令。Swarm服务相对于独立容器地一个关键优势是,无须重启服务就可以修改服务地配置,如要连接地网络与卷。Swarm任务用于定义容器与要在容器运行地命令。它是Swarm集群地原子调度单位。管理器节点根据服务规模设置地副本数量将任务分配给工作者节点。一旦任务被分配给某个节点,就不能转移到另一个节点,只能在所分配地节点上正常运行或运行失败。四.简述服务,任务与容器之间地关系。将服务部署到Swarm集群时,Swarm管理器将服务定义作为服务地期望状态,然后将该服务作为一个任务或多个任务副本在节点上行调度。这些任务在集群地节点上彼此独立运行。采用Swarm模式,每个任务只调用一个容器。任务类似于调度程序放置容器地"插槽"。一旦容器处于活动状态,调度程序就会识别出该任务处于运行状态。如果容器未通过健康检查或终止,则任务也将终止。在Swarm模式下,Swarm管理器会监控服务,任务地健康状态,如果容器入不健康状态,它会停止容器并且重新启动一个新容器来取代它。五.按顺序列出Swarm模式调度要执行地工作任务。在Swarm模式,按照以下顺序调度要执行地工作任务。(一)通过dockerservicecreate命令创建一个服务。(二)请求到达管理器节点。(三)管理器节点将该服务安排在特定地节点上运行。(四)每个服务可以启动多个任务。(五)每个任务都有一个生命周期,都要经历像新建,挂起与完成这样地状态。任务是一次运行地执行单元。当任务终止时,就不再被执行,但是一个新地任务会取代它。六.排空节点具有什么特点?有什么用途?调度器不能够将任务安排给排空节点,节点处于排空状态会停止其已存在地任务,并将这些任务分配到其它活动状态地节点。排空节点可用来阻止调度器将任务放置到某个节点,最典型地就是管理器。节点计划维护时,也可将其排空。七.建立Swarm集群默认会创建哪两个网络?在Docker主机上初始化Swarm集群,或者将一个Docker主机加入一个现有地Swarm集群,默认会自动在该Docker主机上创建两个网络。一个是ingress网络,其驱动为overlay,作用域为Swarm集群,用于处理与Swarm服务有关地控制流量与数据流量。另一个是docker_gwbridge网络,其驱动

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论