在运行jenkins时,jenkins莫名的挂掉,连容器都被删除了,安装是很容易,但是配置全没了,需要费时间去重新配置,所以想到挂载运行,在jenkins挂掉之后,可以直接恢复使用之前的配置
一、Docker安装Jenkins挂载文件启动
下载镜像
启动准备工作
创建挂载的文件路径
启动
下载镜像
从docker镜像仓库找一个Jenkins的版本
选择你想要的版本,然后复制镜像下载docker pull jenkins/jenkins:latest
Linux上执行命令
镜像下载完成
启动准备工作
启动可以携带很多的参数,最普通的启动方式是:
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_hogworts:/var/jenkins_home jenkins
/jenkins:lts
我今天学习的是进行挂载方式启动(预防jenkins挂掉之后还能恢复配置数据)
创建挂载的文件路径
我服务器上面选用的路径是:
mkdir -p /home/jenkins/jenkins_mount
文件创建完成以后需要进行文件权限设置:
chmod 777 /home/jenkins/jenkins_mount
不然后面挂载的时候docker创建文件会报错
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
如果不想给文件赋权限,我们在启动的时候也可以设置 -u root
文件创建完成,开始执行启动命令
启动
-u root 启动,不需要进行文件设置777权限
docker run -u root -d -v /home/jenkins/jenkins_mount:/var/jenkins_home -p 9010:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:latest
需要进行文件777权限设置
docker run -d -v /home/jenkins/jenkins_mount:/var/jenkins_home -p 9010:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:latest
以上命令选其一就行
启动完成以后执行docker ps 查看一下是否启动成功
然后浏览器地址访问:
ip+9010端口
默认第一次访问是需要使用Jenkins自动生成的密码进行设置的,秘钥的路径默认是(第一次启动需要一点时间,才会生成配置文件)
/var/jenkins_home/secrets/initialAdminPassword
我们进行了文件挂载,所以我们的路径是
/home/jenkins/jenkins_mount/secrets/initialAdminPassword
直接使用linux vim 命令:
vim /home/jenkins/jenkins_mount/secrets/initialAdminPassword
输入复制的秘钥
点击继续
这里我为了快速安装,选择了“选择插件来安装”,后面再安装自己需要的插件
点击保存并完成,然后就可以了
二、jenkins挂掉后恢复
jenkins的挂掉后,连容器都被删除了,恢复数据只需要2步
1、重新下载镜像
docker pull jenkins/jenkins:latest
2、重新运行jenkins,挂载目录为挂掉之前的挂载的目录,可以直接运行上次挂载运行的命令(我是这么使用的)docker run -u root -d -v /home/jenkins/jenkins_mount:/var/jenkins_home -p 9010:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:latest
生成了镜像id说明已经运行成功
在浏览器输入ip+端口号,发现之前配置的账号密码都还在(重新加载也花了几秒钟),点击登录进入,原来的配置都还在,成功恢复jenkins配置
挂载部分主要转载https://blog.csdn.net/weixin_42065235/article/details/126194554