前言
在虚拟机Centos7服务器上使用docker搭建jenkins服务。
需要提前准备的条件
-
Maven环境
-
Docker环境
-
JDK环境(本环境安装部署的JDK1.8)
Maven安装和部署:Linux(Centos)下安装配置Maven
一、docker拉取镜像
Jenkins有官方镜像,这里我们选择拉取最新的Jenkins镜像。
# 拉去最新镜像方法 docker pull docker pull jenkins/jenkins
二、创建Jenkins挂载目录并授权权限
如果你对Docker比较熟悉,应该知道它的实现实际上是创造了一个独立的容器环境,Jenkins在这个容器内运行,那么如果我们想要对Jenkins进行配置,就需要进入到容器里选择文件进行配置。虽然我们可以使用docker exec -it 【容器id】 bash 命令进入容器目录进行配置,但是连简单的 vi命令都不能使用。
如果我们在启动镜像的时候指定挂载目录,那么在服务器本机与容器之间就可以创建一个映射。
所以我们在服务器上先创建一个jenkins工作目录, /data/jenkins/jenkins_home,赋予相应权限,稍后我们将jenkins容器目录挂载到这个目录上,这样我们就可以很方便地对容器内的配置文件进行修改 最好创建一个用户用来启动jenkins不然可能无法启动报错没有权限写入
mkdir -p /data/jenkins/jenkins_home useradd jenkins passwd jenkins # 输入密码 cd /data # 用户名 文件夹名称 chown jenkins jenkins # 赋予权限 chmod -R 777 jenkins/
注意:启动报错的时候可能是权限问题,切换用户试试
三、创建并启动Jenkins容器
# 切换用户 su jenkins # 启动Jenkins docker run -d -p 10240:8080 -p 10241:50000 -v /data/jenkins/jenkins_home:/var/jenkins_home -v /usr/local/maven:/usr/local/maven -v /etc/localtime:/etc/localtime --name myjenkins jenkins/jenkins
可以通过docker ps
看看jenkins是否启动,如果未启动使用docker ps -a
查询所有的容器,找到对应jenkins的容器id,使用docker rm [容器ID]
删除,再重新检查命令是否正确、端口等等问题,并启动镜像创建容器。
可以通过docker logs myjenkins
命令查看日志,可以看到Jenkins就是一个Spring项目。
请注意看下面我们指定对应参数的意义。
-d 后台运行镜像
-p 10240:8080 意义: 将镜像的8080端口映射到服务器的10240端口。
-p 10241:50000 意义:将镜像的50000端口映射到服务器的10241端口
-v /data/jenkins/jenkins_home:/var/jenkins_home 意义: /var/jenkins_home目录为容器jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录。这里我们设置的就是上面我们创建的 /var/jenkins_mount目录
-v /etc/localtime:/etc/localtime 意义:让容器使用和服务器同样的时间设置。
注意:此处挂在maven后续打包项目时会用到。
-v /usr/local/maven:/usr/local/maven 意义:挂载本地maven,前面是服务器上的,后面是挂载到容器上的目录 –name myjenkins 意义:给容器起一个别名
四、配置Jenkins服务
http://192.168.217.129:10240/login?from=%2F
需要注意的是,这里显示的是jenkins_home
路径,由于我设定的目录是jenkins_home
,故我的密码放置目录是/data/jenkins/jenkins_home/secrets
# 查看密码 cd /data/jenkins/jenkins_home/secrets cat initialAdminPassword