1、简述一下对Jenkins的认识
Jenkins可以构建一个自动化的持续集成环境可以使用它来“自动化”编译、打包、分发部署应用,它兼容ant、maven、gradle等多种第三方构建工具,同时与svn、git能无缝集成,也支持直接与知名源代码托管网站,如github、bitbucket直接集成。
2、Jenkins的功能有哪些?
- 1.定时拉取代码并编译
2.静态代码分析
3.定时打包发布测试版
4.自定义额外的操作,如跑单元测试等
5.出错提醒
3、什么是持续集成?
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
4、持续集成的好处?
- 对重复的编译发布等操作进行抽象,减少重复过程
- 及早发现各种冲突和错误,减少风险
- 任何时间、任何地点生成可部署的软件
5、如何理解docker容器?
Dockerfile面向开发,Docker 镜像成为交付标准,Docker 容器则涉及部署与运维
Docker类似于一个虚拟机,实现资源和系统环境的隔离
Docker镜像类似于Ghost系统,为了方便快速使用,已经完成了服务的所有配置。
DockerFile是一个脚本,用于生成Docker镜像的脚本
Docker镜像不仅可以从DockerFile生成,也可以从Docker容器生成,但最好是通过DockerFile来生成,方便后期维护。
我们创建新的镜像都是从系统镜像开始创建的,如centos:7,centos:6
6、maven和Jenkins区别?
Maven是一个构建工具,简而言之是ant的继承者。它有助于构建和版本控制。 但是,Jenkins是持续集成系统,其中maven用于构建。 Jenkins可用于自动化部署过程。
7、docker比虚拟机的优势:
docker有着比虚拟机更少的抽象层
docker利用的是宿主机的内核,而不需要Guest OS
docker计算效率与主机一样,没有损耗,但虚拟机的计算能力损耗在50%左右docker与虚拟机内存访问效率要高
8、Jenkins Pipeline是什么?
Jenkins Pipeline插件是Jenkins用户的游戏规则改变者。 Pipeline插件基于Groovy中的领域特定语言(DSL),使管道可编写脚本,并且是开发复杂的多步DevOps管道的强大方法。
9、简单介绍什么是持续集成和持续部署
持续集成
持续集成指在和向远程仓库 push 代码后,在这次提交合并入主分支前进行一系列测试,构建等流程。假设现在有个应用的代码存储在 gitlab 上,每天开发者都 push 很多次提交,针对每次 push,你可以创建一系列脚本进行自动测试,降低往应用里引入错误的概率。这就是持续集成,它可应用在包括开发分支在内的多个分支上。
持续部署
持续部署在持续集成的基础上更进一步,指将推送指仓库默认分支的部署至产品环境。如果这部分需要手动触发,这就是一个持续交付(Continuous Delivery)环节。
10、Jenkins支持哪些SCM工具?
Jenkins支持版本控制工具,包括AccuRev,CVS,Subversion,Git,Mercurial,Perforce,ClearCase和RTC,并且可以执行基于Apache Ant,Apache Maven和sbt的项目以及任意的shell脚本和Windows批处理命令。
11、docker中镜像的作用?
docker镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。我们可将 docker镜像看成只读模板,通过它可以创建 docker容器。
12、如何在Jenkins创建job?
转到Jenkins主页,选择“新建作业”,然后选择“构建自由样式的软件项目”。 此作业类型包含以下元素: 可选的SCM,例如源代码所在的CVS或Subversion。
13、docker常用命令
拉取docker:
docker pull image_name
查看下主机下存在多少镜像:
docker images
对一个容器进行启动,重启和停止:
docker start container_name/container_id
docker restart container_name/container_id
docker stop container_name/container_id
14、如何在Jenkins中配置自动构建?
在Jenkins中的构建可以定期触发(按计划,在配置中指定),或者在检测到项目中的源更改时触发,或者可以通过请求URL自动触发: http://YOURHOST/jenkins/job/PROJECTNAME/build
15、本地提交代码的步骤?
1.checkout代码到本地
2.做本地修改
3.本地构建
4.再次update代码到本地
5.再次本地构建
6.提交代码
7、持续集成构建
16、docker架构
C/S架构
-> Docker使用客户端-服务器(client-server)架构模式。
-> Docker 客户端会与Docker守护进程进行通信。Docker 守护进程会处理复杂繁重的任务,例如建立、运行、发布你的 Docker 容器。
-> Docker 客户端和守护进程可以运行在同一个系统上,当然也可以使用Docker客户端去连接一个远程的 Docker 守护进程。
-> Docker 客户端和守护进程之间通过socket或者RESTful API进行通信。
17、docker原理
建立–>传送–>运行
通过Docker Hub或者自己的Docker仓库分享Docker镜像, 从Docker镜像创建Docker容器, 在容器里运行应用程序