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

运行一段时间,可以看到输出初始化的密码

images/191204/fs20191204000023.jpg

通过浏览器访问 http://ip:8081 进入初始页,输入初始的管理员密码

images/191204/fs2019120400003s.jpg

images/191204/fs2019120400004O.jpg

可选择 "安装推荐的插件"或者 "选择插件来安装"

建议选择选择插件来安装,然后一个插件都不选择,进入下一步。因为国内连接jenkins的服务器来安装插件很慢,安装完jenkins之后,再设定为国内源,安装插件应该就快一些

images/191204/fs2019120400005s.jpg

等待插件的安装完成,然后点 Continue 进入下一步,进入Create First Admin User 页面,创建第一个 admin 用户,然后依次点击保存并完成,进入到jenkins的首页。

images/191204/fs2019120400006m.jpg

至此,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

  1. 准备升级使用的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
  1. 进入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

posted @ 2019-12-13 18:47  五毛钱的饼  阅读(483)  评论(0编辑  收藏  举报