超详细 Docker 安装Jenkins(避坑!!!)

9,405 阅读5分钟

前言

在Centos7阿里云服务器上使用docker搭建Jenkins服务。

需要提前准备的条件

  1. Maven环境
  2. docker环境
  3. JDK环境(Centos7自带JDK环境)

一、docker拉取镜像

Jenkins有官方镜像,也有私人镜像,这里我们选择拉取中文版的Jenkins镜像。

docker pull jenkinszh/jenkins-zh

在这里插入图片描述

二、创建Jenkins挂载目录并授权权限

如果你对Docker比较熟悉,应该知道它的实现实际上是创造了一个独立的容器环境,Jenkins在这个容器内运行,那么如果我们想要对Jenkins进行配置,就需要进入到容器里选择文件进行配置。虽然我们可以使用docker exec -it 【容器id】 bash 命令进入容器目录进行配置,但是连简单的 vi命令都不能使用。

如果我们在启动镜像的时候指定挂载目录,那么在服务器本机与容器之间就可以创建一个映射。

所以我们在服务器上先创建一个jenkins工作目录, /var/jenkins_mount,赋予相应权限,稍后我们将jenkins容器目录挂载到这个目录上,这样我们就可以很方便地对容器内的配置文件进行修改。

mkdir -p /var/jenkins_mount
chmod 777 /var/jenkins_mount

三、创建并启动Jenkins容器

命令如下,别着急执行命令,记得改路径。

docker run -d -p 10240:8080 -p 10241:50000 -v /var/jenkins_mount:/var/jenkins_home -v  /root/apache-maven-3.6.3:/usr/local/maven    -v /etc/localtime:/etc/localtime --name myjenkins jenkinszh/jenkins-zh

请注意看下面我们指定对应参数的意义。

 -d 后台运行镜像

 -p 10240:8080 意义: 将镜像的8080端口映射到服务器的10240端口。

  -p 10241:50000 意义:将镜像的50000端口映射到服务器的10241端口

  -v /var/jenkins_mount:/var/jenkins_mount 意义: /var/jenkins_home目录为容器jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录。这里我们设置的就是上面我们创建的 /var/jenkins_mount目录

  -v /etc/localtime:/etc/localtime 意义:让容器使用和服务器同样的时间设置。 -v /root/apache-maven-3.6.3:/usr/local/maven 意义:挂载本地maven,前面是服务器上的,后面是挂载到容器上的目录  --name myjenkins 意义:给容器起一个别名

然后使用docker在后台启动jenkins镜像,注意maven一定要挂载,不然后面在容器里找不到maven。如何挂载请看上面注释,路径也要注意,我是安装到了/root/apache-maven-3.6.3,你们如果安装到别的地方,记得改路径。

这里我没有挂载jdk,是因为centos自带jdk,所以我可以在容器中使用自带的jdk 如果你们使用的是windows或者其他版本的操作系统建议也挂载上jdk

可以通过docker ps 看看jenkins是否启动,如果未启动使用docker ps -a 查询所有的容器,找到对应jenkins的容器id,使用docker rm [容器ID]删除,再重新检查命令是否正确、端口等等问题,并启动镜像创建容器。

在这里插入图片描述 可以通过docker logs myjenkins命令查看日志,可以看到Jenkins就是一个Spring项目。

在这里插入图片描述 进入容器,检查一下maven是否挂载成功,进入容器的命令是docker exec -it 【容器ID】 bash,进入到我们刚才指定的Maven目录,也就是/usr/local/maven,可以看到确实有maven。

在这里插入图片描述

四、配置Jenkins服务

启动好镜像我们就可以进行配置了,Jenkins是一个web服务,所以我们直接使用web端口访问即可。

由于我们上面docker配置的是10240端口,去访问10240端口即可,如果是云服务器,记得打开安全组的10240端口

在这里插入图片描述 需要注意的是,这里显示的是jenkins_home路径,由于我设定的目录是jenkins_mounts,故我的密码放置目录是/var/jenkins_mount 所以建议使用cdls命令一层一层进入密码目录

在这里插入图片描述 把找到的密码输入即可。

在这里插入图片描述 输入密码后,选择安装推荐的插件即可。 在这里插入图片描述 最后成功进入到jenkins中。 在这里插入图片描述 安装两个插件,一个是publish over ssh,一个是Maven Integration 在这里插入图片描述

安装插件完成后我们需要配置Maven环境和JDK环境。

在这里插入图片描述

点击全局配置后,配置maven为刚才挂载的maven路径,也就是/usr/local/maven

在这里插入图片描述

创建一个maven项目 在这里插入图片描述

在这里插入图片描述 创建项目后,选择配置项目 在这里插入图片描述

绑定git

在这里插入图片描述

写入Maven要执行的命令,clean install 在这里插入图片描述 指定多久检查一次git改变,若有改变则编译。 在这里插入图片描述 并且指定编译完成后的策略,我们是想编译完成后直接跑起来,这里使用SSH方式进行指定。 在这里插入图片描述 在这里插入图片描述

在配置好刚创建的Maven项目之后,我们立即构建即可 在这里插入图片描述 我们查看控制台输出,发现提示POM文件没有找到,是因为我还没有在git上创建一个Maven项目。 在这里插入图片描述 所以我们创建一个maven项目并且上传到git上即可。 在这里插入图片描述 之后我们每次提交项目到git,在构建编译后,将会自动上线部署。 在这里插入图片描述 在这里插入图片描述

参考

www.likecs.com/show-103109… www.cnblogs.com/wenwen20/p/…

使用jenkins进行项目的自动构建部署 使用Jenkins编译打包后自动部署项目