1.安装jenkins
docker创建jenkins容器
docker run -d -p 8090:8080 -p 8091:50000 -v /data/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkinsci/blueocean
出现以下错误提示:
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?
查看容器运行日志:
docker logs jenkins
2.“Permission denied” 解决方法
第一种:容器执行命令加上特权参数 --privileged=true
删除容器:
docker rm jenkins
加上特权参数重新创建jenkins容器:
docker run -d -p 8090:8080 -p 8091:50000 -v /data/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --privileged=true --name jenkins jenkins
查看容器日志:
docker rm jenkins
并没有解决问题!!!!
第二种:临时关闭selinux
临时关闭selinux:
setenforce 0
删除容器:
docker rm jenkins
重新创建jenkins容器:
docker run -d -p 8090:8080 -p 8091:50000 -v /data/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins
查看容器日志:
docker rm jenkins
结果:
并没有解决问题!!!!
第三种:添加selinux规则,改变要挂载的目录的安全性文本
修改selinux规则:
chcon -Rt chcon -Rt svirt_sandbox_file_t /data/jenkins_home
chcon -Rt svirt_sandbox_file_t /etc/localtime
删除容器:
docker rm jenkins
重新创建jenkins容器:
docker run -d -p 8090:8080 -p 8091:50000 -v /data/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins
查看容器日志:
docker logs jenkins
结果:
第四种:根据uid修改所挂载宿主机目录的权限
参考博客:https://developer.aliyun.com/article/53990
查看jenkins容器的用户和uid
docker run -ti --rm --entrypoint="/bin/bash" jenkins -c "whoami && id"
给jenkins 的 uid 赋予 /data的权限:
sudo chown -R 1000 /data
重启启动jenkins:
docker start jenkins
查看 jenkins是否启动:
docker ps | grep jenkins
结果:
牛逼!!!
3.配置镜像加速
b编辑xml文档:
vim /data/jenkins_home/hudson.model.UpdateCenter.xml
修改 url 为清华大学官方镜像:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
4.访问jenkins管理界面
浏览器输入jenkins安装机器所在IP地址和端口:
http://127.0.0.1:8090
执行以下命令获取管理员密码输入该框:
vim /data/jenkins_home/secrets/initialAdminPassword
成功登录: