CentOS7下Docker中构建Jenkins容器
背景
在CentOS搭建Docker完成后,我们需要在Docker中搭建Jenkins用来实现工程自动部署。
安装前提
- jdk已安装,安装目录如:usr/java/jdk1.8.0_161
- maven已安装,安装目录如:usr/maven/apache-maven-3.5.2
- 设置Jenkins挂载目录(重要!!!)
- 创建一个目录作为Jenkins挂载目录,比如,mkdir -p /home/jingguoliang/jenkins
- 设置此目录的归属用户ID:chown -R 1000:1000 "/home/jingguoliang/jenkins/"
步骤
- 下载相应的jenkins镜像文件
- 运行Docker服务:systemctl start docker.service
- 搜索下载量大于10的相关镜像:docker search -s 10 "jenkins",如下图,我们选择第一个官方Jenkins Docker 镜像
- 下载镜像:docker pull "docker.io/jenkins",等待下载。
- PS:在下载过程中不可以断网,如果断网则需要重新下载镜像。具体步骤如下
- 重启docker:systemctl restart docker.service
- 重新搜索镜像
- 重新下载镜像
- 查看Docker镜像,如下图,则成功。
- 创建Jenkins容器
- 创造并运行容器:docker run -itd -p 8090:8080 -p 50000:50000 --name jenkins --privileged=true -v /home/jingguoliang/jenkins:/var/jenkins_home -v /usr/java/jdk1.8.0_161:/usr/java/jdk1.8.0_161 -v /usr/maven/apache-maven-3.5.2:/usr/maven/apache-maven-3.5.2 docker.io/jenkins
- -p 8090:8080 -p 50000:50000:进行端口映射,比如127.0.0.1:8090就可以访问Jenkins
- --name jenkins:容器名称
- --privileged=true:在CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权,如果不加此参数会有权限问题
- -v /home/jingguoliang/jenkins:/var/jenkins_home -v /usr/java/jdk1.8.0_161:/usr/java/jdk1.8.0_161 -v /usr/maven/apache-maven-3.5.2:/usr/maven/apache-maven-3.5.2:磁盘挂载
- docker.io/jenkins:镜像名称
- 查看正在运行的容器:docker ps,如下图
- 创造并运行容器:docker run -itd -p 8090:8080 -p 50000:50000 --name jenkins --privileged=true -v /home/jingguoliang/jenkins:/var/jenkins_home -v /usr/java/jdk1.8.0_161:/usr/java/jdk1.8.0_161 -v /usr/maven/apache-maven-3.5.2:/usr/maven/apache-maven-3.5.2 docker.io/jenkins
- 访问Jenkins,如图
- 访问地址
- 本地访问:http://loalhost:8090/
- 局域网访问,ip+8090
- 访问地址
-
- 获取登录密码
- 方式一:在jenkins启动的时候,我们设置了文件夹的挂在,所以我们直接可以在本地jenkins目录下查看密码:cat /home/jingguoliang/jenkins/secrets/initialAdminPassword,返回的值就是密码
- 方式二:进入容器内部获取密码
- 进入容器:docker exec -it "容器ID" bash,如图
- 查找文件:cat /var/jenkins_home/secrets/initialAdminPassword,如下图,返回的值就是密码
- 登录即可。
- 获取登录密码