docker 安装 jenkins 笔记
前提: 已安装好 docker-ce,可运行 docker 命令
命令:
sudo docker pull jenkins
mkdir -p ~/dockers/jenkins
cd ~/dockers
sudo docker run --name jenkins01 -p 8081:8080 -p 50000:50000 -v ${PWD}/jenkins:/var/jenkins_home jenkins:latest
报错 :
touch: Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
需要修改下目录权限, 因为当映射本地数据卷时,/home/docker/jenkins目录的拥有者为root用户,而容器中jenkins user的uid为1000
sudo chown -R 1000:1000 ~/dockers/jenkins
sudo docker rm jenkins01
sudo docker run --name jenkins01 -p 8081:8080 -p 50000:50000 -v ${PWD}/jenkins:/var/jenkins_home jenkins:latest
运行一段时间,可以看到输出初始化的密码
通过浏览器访问 http://ip:8081
进入初始页,输入初始的管理员密码
可选择 "安装推荐的插件"或者 "选择插件来安装"
建议选择选择插件来安装
,然后一个插件都不选择,进入下一步。因为国内连接jenkins的服务器来安装插件很慢,安装完jenkins之后,再设定为国内源,安装插件应该就快一些
等待插件的安装完成,然后点 Continue
进入下一步,进入Create First Admin User
页面,创建第一个 admin 用户,然后依次点击保存并完成,进入到jenkins的首页。
至此,docker 版本的jenkins的安装已经结束。
设置 Jenkins 国内源
登录到Jenkins后台,通过系统管理
-> 管理插件
-> 高级
,在底部有一个升级站点
, 可以填入下面任一一个地址,然后点击 提交
jenkins插件清华大学镜像地址: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
jenkins插件华为开源镜像地址: https://mirrors.huaweicloud.com/jenkins/updates/update-center.json
jenkins镜像地址列表
http://mirrors.jenkins-ci.org/status.html
升级 Jenkins
备注: 升级前,请备份好jenkins容器的资料,因为我的jenkins容器是空的,直接参考别人文章就尝试升级成功了
下载 jenkins.war
使用华为开源镜像站 或 清华大学开源站按需要下载升级使用的jenkins.war
,我当前jenkins最新版本是2.339
- 准备升级使用的
jenkins.war
文件
进入到 docker jenkins 容器/var/jenkins_home
挂载的目录,我的是~/dockers/jenkins
#FORM Ubuntu
vagrant@vagrant:~$ cd ~/dockers/jenkins/
vagrant@vagrant:~/dockers/jenkins$ wget https://mirrors.huaweicloud.com/jenkins/war/2.239/jenkins.war #通过华为开源镜像站下载 jenkins.war
- 进入jenkins容器
#FROM Ubuntu
vagrant@vagrant:~/dockers/jenkins$ sudo docker exec -ti -u root ContainerId /bin/bash #ContainerId是docker jenkins容器的CONTAINER ID或NAMES
进入 jenkins容器后:
#FROM Docker
root@2aa9fb0a8d65:/# whereis jenkins
jenkins: /usr/local/bin/jenkins.sh /usr/share/jenkins
root@2aa9fb0a8d65:/# cd /usr/share/jenkins
root@2aa9fb0a8d65:/usr/share/jenkins# cp jenkins.war jenkins_bak.war # 备份原先的jenkins.war
root@2aa9fb0a8d65:/usr/share/jenkins# cp /var/jenkins_home/jenkins.war /usr/share/jenkins/ #使用上一步/var/jenkins_home/jenkins.war 覆盖 /usr/share/jenkins的jenkins.war
root@2aa9fb0a8d65:/usr/share/jenkins# exit # 退出容器
重启 jenkins 容器
#From Ubuntu
sudo docker restart ContainerId # #ContainerId是docker jenkins容器的CONTAINER ID或NAMES
References
- docker运行jenkins 学习到解决启动时的报错部分
- Docker 之 Jenkins自动化部署 主要参考
- docker安装jenkins最新版本 有中文版本的安装界面截图
- Jenkins:CentOS7 使用 Docker 安装 Jenkins 后,升级 Jenkins 版本
- jenkins更换国内源