Jenkins在项目中可以说是CI/DI必不可少的一个工具。关于Jenkins的安装,网上文章很多,但是错讹居多,有不少都没有经过验证。
本文结合网上文章、视频以及个人实操,希望可以作为一个满意的Docker安装Jenkins的文档。
一、版本选择
我们在安装容器时,很多时候都是采用的官方镜像,但是如果看网上的文章,在安装Jenkins时大多不是直接安装的官方推荐的。
1. 检索Jenkins的镜像
docker search jenkins
一般第一个就是官方镜像。
但是安装Jenkins时,大多不会安装这个版本,就连Jenkins官网都推荐安装的是其他版本,具体是什么呢?就是jenkinsci/blueocean。
docker search jenkinsci
通过上图OFFICIAL列的字段可以看出,我们检索的jenkinsci的容器,都不是官方版本的。
查看官网
官网地址:Docker安装Jenkins官网
官网推荐命令:
docker run
-u root
--rm
-d
-p 8080:8080
-p 50000:50000
-v jenkins-data:/var/jenkins_home
-v /var/run/docker.sock:/var/run/docker.sock
jenkinsci/blueocean
我们看最后一行,官网使用的就是jenkinsci/blueocean版本。
最终,我们确定,我们使用的Jenkins版本是jenkinsci/blueocean。
二、安装
我们不采用官方的命令,我们采用最通用的命令。
docker run -u root --name jenkins-blueocean -d
-p 8080:8080 -p 50000:50000
-v /usr/local/jenkins_home:/var/jenkins_home
-v /var/run/docker.sock:/var/run/docker.sock
--restart=always --privileged=true
jenkinsci/blueocean
命令解读:
需要说明的是,–privileged=true,虽然是拥有了 root 权限,但并不一定是 root 用户身份。
-uroot ,指定了 root 用户身份,但并不是真正拥有 root 权限。
总结:
这部分参考:docker run 命令详解
所以,我们给出的命令不但有-u root,也有–privileged=true,这就是更合理的。
三、错误示范
一般创建容器时,很少指定-u root命令,大多是使用–privileged=true。这在创建其他容器时一般是没问题的,但是创建Jenkins是有问题的。
docker run --name jenkins -d
> -p 8080:8080 -p 50000:50000
> --restart=always --privileged=true
> -v /usr/local/jenkins_home:/var/jenkins_home
> -v /var/run/docker.sock:/var/run/docker.sock
> jenkinsci/blueocean
我们采用以上命令创建一个名为jenkins的容器,然后查看容器情况:
docker ps
我们看到STATUS为Restarting。
查看容器日志:
docker logs -f --tail 300 jenkins
如果我们搜索错误日志:
给出的解释大体都是一样的:
具体说就是:
解决方案:
chown -R 1000:1000 /usr/local/docker/jenkins/
这个问题就是在创建Jenkins容器是没有加-u root参数导致的,切记!
四、登陆
浏览器上输入:
按道理说是访问http://localhost:8080就可以访问,但是我这里失败了,只好通过访问虚拟机路径访问。
以上地址是我们的虚拟机地址。
创建Jenkins后会自动创建admin用户和对应的密码,密码所在的位置上图已经给出,我们访问该文件即可得到密码:
cat /var/jenkins_home/secrets/initialAdminPassword
得到的密码是:
也可以访问Jenkins运行日志查看该密码:
docker logs jenkins
上面的jenkins指的是创建的Jenkins的容器名称。
因为Jenkins是用Java编写的,上图就是启动一个java项目的日志。
我们通过上图可以看到密码,以及日志的提示中说,可以访问下面目录得到密码:
这和页面上给的提示是一致的。
我们输入密码,点击继续即可登陆成功。
这真的是新手入门!!!
既然是新手入门,那我们就安装推荐的插件即可,这个其实就类似于安装软件时候的默认安装与自定义安装。
邮箱不可少。
保存并完成。
上图就是采用我们刚才创建的用户登陆的界面。
至此,我们通过Docker安装Jenkins已经完成。
唯一的缺憾就是,我们创建完容器后竟然不能使用localhost来访问。这个问题以后再解决。
版权声明:本文内容来自CSDN:北冥牧之,遵循CC 4.0 BY-SA版权协议上原文接及本声明。
本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。
原文链接:https://blog.csdn.net/qq_42971035/article/details/128585595
如有涉及到侵权,请联系,将立即予以删除处理。
在此特别鸣谢原作者的创作。
此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者,非商业转载请注明出处。