一、准备工作
1.ubuntu14.04
2.安装好docker环境
二、搭建过程
1.搜索jenkins镜像文件并拉取
sudo docker search jenkins //搜索jenkins的镜像文件
sudo docker pull jenkins //拉取官方的最新的jenkins文件(在上一篇文章中已经设置了网易代理)
2.运行jenkins镜像作为容器
运行命令如下:
sudo docker run -d -p 8099:8080 -v /opt/data/jenkins_home:/var/jenkins_home --name wjenkins jenkins:latest
-d 是后台启用jenkins服务
-p 是端口映射
-v 是数据挂载
--name 是为容器命名
***因为要经常使用,所以就不用-rm参数了***
执行以上命令就已经成功地在docker中运行jenkins了,然后再在浏览器中输入ip:8099就会访问jenkins了,是不是so easy呢?
三、Q&A
1.为什么在docker中运行了jenkins下载了一些插件,下次运行的时候还是要重新下载
这是因为没有使用数据挂载,数据源没有保留在宿主机上
2.为什么按照以上操作,容器却启动不起来,使用sudo docker ps命令发现该容器并没启动
*这是因为启动jenkins的用户一般来说是其他用户,所以映射的宿主机的目录没有权限进行操作。
3.jenkins镜像文件下载太慢
这是因为没有设置国内代理,具体的可以参考:docker学习之搭建自己的本地镜像仓库
四、其他
1.背景
我在虚拟机中打开网页太卡,因此想通过直接在windows的窗口中访问虚拟机的docker容器中的jenkins
2.做法
#查看虚拟机的ip地址
ifconfig //我的虚拟机的ip是192.168.147.129
然后在windows的浏览器窗口中输入192.168.147.129:8099即可
这里采用的另外一种方案,因为输入ip地址麻烦不容易记住:更改windows的dns解析
- 找到C:WindowsSystem32driversetchost文件
- 在最后添加一行 192.168.147.129 jenkins
- 在浏览器窗口输入 jenkins:8099,出现以下界面即为成功
3.将该jenkins镜像文件推送到自己的本地仓库
sudo docker tag jenkins:latest 192.168.147.129:5000/jenkins //打tag
sudo docker push 192.168.147.129:5000/jenkins //推送
五、总结
其实在docker容器中运行jenkins的操作步骤挺简单的,我第一次启动容器成功了,但是发现自己并没有给容器命名,然后将该容器删掉,重新运行后却意外的发现自己的容器一直启动失败,经过长时间和错误做斗争,才发现是由于启动jenkins的用户对宿主机上的挂载目录没有权限导致的.
如果对文章有疑问或者哪里不懂的请联系我,在力所能及的范围内帮助解答;如果文章有错误,也欢迎指出。
微信号:kakaicoco