本篇内容很是简单,讲述了如何快速在 Docker 上部署一个 Jenkins 实例,避免多采坑,浪费没必要要的练习时间。mysql
本文实验环境:git
打开终端,输入docker search
命令搜索 Docker Hub 上可用的 Jenkins 镜像:github
$ docker search jenkins NAME DESCRIPTION STARS OFFICIAL AUTOMATED jenkins Official Jenkins Docker image 4328 [OK] jenkins/jenkins The leading open source automation server 1563 jenkinsci/blueocean https://jenkins.io/projects/blueocean 399 jenkinsci/jenkins Jenkins Continuous Integration and Delivery … 367 jenkinsci/jnlp-slave A Jenkins slave using JNLP to establish conn… 110 [OK] jenkins/jnlp-slave a Jenkins agent (FKA "slave") using JNLP to … 86 [OK] ...
根据镜像OFFICIAL
标签判断,位列第1、名字为jenkins
的是 Jenkins 官方提供的镜像。咱们是否是应该使用这个官方镜像呢?sql
若是你看过 Jenkins 文档中 Docker 安装 小节,会发现官方推荐使用的镜像是jenkinsci/blueocean
,该镜像包含当前的长期支持 (LTS) 的 Jenkins 版本 (能够生产使用) ,并捆绑了全部 Blue Ocean 插件和功能。docker
博主第一次安装的时候使用的是
jenkins
镜像,其集成的 Jenkins 版本比较高,结果出现好多插件不兼容的状况,对于我等小白来讲是一件比较麻烦的事。bash
这里咱们果断使用jenkinsci/blueocean
镜像,使用docker pull
命令拉取:tcp
$ docker pull jenkinsci/blueocean Using default tag: latest latest: Pulling from jenkinsci/blueocean Digest: sha256:523769431f19830cfda7ceae37c59c9f01affb551836933aa30114dcaa5df9eb Status: Image is up to date for jenkinsci/blueocean:latest
在本地镜像仓库确认是否已存在:操作系统
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE jenkinsci/blueocean latest ef2dc74fe285 21 hours ago 552MB mysql latest 990386cbd5c0 2 months ago 443MB jenkins latest cd14cecfdb3a 11 months ago 696MB ...
如今,就能够基于下载的镜像运行 Jenkins 容器了,有如下两种运行方式供你参考:插件
方式一:直接运行,运行期间产生的全部数据都保存在容器内部,容器销毁,数据丢失。设计
docker run \ --name jenkins-blueocean \ -d \ -p 8081:8080 \ -p 50001:50000 \ jenkinsci/blueocean
方式二:Docker 会在宿主机上建立一个数据卷jenkins-data
,容器映射该卷以持久化数据。
docker run \ --name jenkins-blueocean \ -d \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins-data:/var/jenkins_home \ jenkinsci/blueocean
Tips:8080 端口用来公开访问 Web 界面,50000 端口容许访问远程 Java (JIRA) API。
这里我使用了第二种方式启动了 一个 Jenkins 容器应用:
$ docker run \ --name jenkins-blueocean \ -d \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins-data:/var/jenkins_home \ jenkinsci/blueocean 93f88d6ca2129fae971298e98e20091570f6903463b203a9235660856f63020e
最后使用docker ps
命令确认容器是否已经后台运行:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0cad9bbe76a6 jenkinsci/blueocean "/sbin/tini -- /usr/…" About an hour ago Up About an hour 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins-blueocean
以上若是一切正常,如今就能够经过http://<ipaddress>:8080
访问 Jenkins 的 Web 界面了。
Step1:解锁 Jenkins。
管理员初始密码被放到了/var/jenkins_home/secrets/initialAdminPassword
文件中。
由于咱们把 Jenkins 部署在了 Docker 容器中,所以须要先进入到容器,再去查看对应的文件initialAdminPassword
内容:
$ docker exec -it jenkins-blueocean /bin/bash jenkins@93f88d6ca212:/$ cat /var/jenkins_home/secrets/initialAdminPassword a6f6d08fcc474178833001d1fc79be62
如上输出中,a6f6d08fcc474178833001d1fc79be62
即是咱们须要的管理员密码,复制并粘贴到 Web 界面,点击继续便可解锁 Jenkins。
Step2:安装插件。
Jenkins 能够说彻底由插件来驱动的,因此安装一些基础的插件是非要必要的,这里咱们选择 安装推荐的插件 ,而后静静地等待插件安装完成便可。
Step3:建立用户。
接着继续下一步操做,提示须要建立一个新的用户,自行填写便可。
Step4:配置实例。
看看提示,没有问题就点 保存并完成 便可。
至此,Jenkins 初始化配置过程也就完成了。正式开启你的 持续集成&持续部署 之旅吧!
若是你不喜欢 Jenkins 官方默认页面样式,你能够尝试经过以下项目更换一套基于 Material Design 设计的主题。
https://github.com/afonsof/jenkins-material-theme
安装过程请参考其相关文档,此处再也不详述。