去发现生活中的美好,记录生活中的点点滴滴

安装部署Jenkins

docker admin 66℃

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Jenkins功能包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。

一、通过docker安装Jenkins:

1、查看jenkins版本命令

docker search jenkins

2、拉取镜像命令(不标注表示最新的)

docker pull jenkins

3、创建挂载目录(docker映射到外部的路径)

mkdir /home/jenkins

4、修改权限(1000:1000 是UID和GID)

chown -R 1000:1000 /home/jenkins/

注意:此目录需要设置权限,否则启动容器报错权限错误

5、运用镜像启动容器命令

docker run -d -p 8000:8080 -p 60000:60000 -v /home/jenkins:/var/jenkins_home --name jenkins --privileged=true  -u root jenkins

参数说明:

-p : 映射端口,宿主机端口:容器端口
-v : 挂载,宿主机目录:容器目录
--name : 自定义容器名
-u : 权限用户名
--privileged : 使用该参数,container内的root拥有真正的root权限,否则,container(容器)内的root只是外部的一个普通用户权限,privileged启动的容器可以看到很多host上的设备,并且可以执行mount,甚至允许你在docker容器内启动docker容器。

-p  60000:60000 :如果您在其他机器上设置了一个或多个基于JNLP的Jenkins代理程序,而这些代理程序又与 jenkinsci/blueocean 容器交互(充当“主”Jenkins服务器,或者简称为“Jenkins主”), 则这是必需的。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信。

6、修改default.json、hudson.model.UpdateCenter.xml配置文件
启动容器后,进入刚才设置的挂载目录 /home/jenkins 内,可以看到已经有映射的配置文件了。

默认路径
http://updates.jenkins-ci.org/update-center.json
改成路径
http://mirror.xmission.com/jenkins/updates/update-center.json

7、完成后修改 /updates/default.json 配置文件

默认路径
"connectionCheckUrl":"http://www.google.com/" 
改为路径
"connectionCheckUrl":"http://www.baidu.com/"

8、重启jenkins容器

docker restart jenkins

9、访问

http://IP或域名:8000/

10、获得登录密码

可直接找:
/home/jenkins/secrets/initialAdminPassword

或者进入容器内找:
/var/jenkins_home/secrets/initialAdminPassword
需要进入jenkins容器内,查找密码:
docker exec -it jenkins /bin/bash # jenkins 为容器名或容器id 
cat /var/jenkins_home/secrets/initialAdminPassword #查看密码
获得密码后登录即可

11、如果使用docker容器部署的Jenkins,要在Jenkins中执行docker build 等命令,有三种方式:

第一:安装Docker-build-step插件。但是如果是Jenkins pipeline脚本就不行了。
第二:调用docker RESTful API。可以参考docker官网https://docs.docker.com/engine/api/v1.40/#operation/ImageList
第三:把宿主的docker命令共享给容器内部使用。

docker run -it -d  -p 8000:8080 -p 60000:60000  \
--name jenkins \
--privileged=true  \
--restart=always \
-v /home/jenkins:/var/jenkins_home \
-u root \
-v /usr/bin/docker:/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/sysconfig/docker:/etc/sysconfig/docker \
-v /usr/bin/docker-current:/usr/bin/docker-current \
-v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 \
 jenkins # 容器名

说明:


--restart=always #Docker重启后该容器也为随之重启

-u root          
#以root的身份去运行镜像(避免在容器中调用Docker命令没有权限)
#最好使用docker用户去运行

-v /usr/bin/docker:/usr/bin/docker
#将宿主机的docker命令挂载到容器中
#可以使用which docker命令查看具体位置
#或者把挂载的参数改为: -v $(which docker):/usr/bin/docker

-v /var/run/docker.sock:/var/run/docker.sock
#容器中的进程可以通过它与Docker守护进程进行通信

-v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
#libltdl.so.7是Docker命令执行所依赖的函数库
#容器中library的默认目录是 /usr/lib/x86_64-linux-gnu/
#把宿主机的libltdl.so.7 函数库挂载到该目录即可
#可以通过whereis libltdl.so.7命令查看具体位置
#centos7位置/usr/lib64/libltdl.so.7
#ubuntu位置/usr/lib/x86_64-linux-gnu/libltdl.so.7

转载请注明:永盟博客 » 安装部署Jenkins

喜欢 (1)