使用 Docker 安装 Jenkins 的最佳方式
<h2 id="说在前面">说在前面</h2><p>本篇内容非常简单,讲述了如何快速在 Docker 上部署一个 Jenkins 实例,避免多采坑,浪费不必要的练习时间。</p>
<p>本文实验环境:</p>
<ul>
<li>操作系统:Centos 7.5</li>
<li>Docker Version:18.09.6</li>
</ul>
<h2 id="下载镜像">下载镜像</h2>
<p>打开终端,输入<code>docker search</code>命令搜索 Docker Hub 上可用的 Jenkins 镜像:</p>
<pre><code>$ docker search jenkins
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
jenkins Official Jenkins Docker image 4328
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
jenkins/jnlp-slave a Jenkins agent (FKA "slave") using JNLP to … 86
...
</code></pre>
<p>根据镜像<code>OFFICIAL</code>标签判断,位列第一、名字为<code>jenkins</code>的是 Jenkins 官方提供的镜像。我们是不是应该使用这个官方镜像呢?</p>
<p>如果你看过 Jenkins 文档中 Docker 安装 小节,会发现官方推荐使用的镜像是<code>jenkinsci/blueocean</code>,该镜像包含当前的长期支持 (LTS) 的 Jenkins 版本 (可以生产使用) ,并捆绑了所有 Blue Ocean 插件和功能。</p>
<blockquote>
<p>博主第一次安装的时候使用的是<code>jenkins</code>镜像,其集成的 Jenkins 版本比较高,结果出现好多插件不兼容的情况,对于我等小白来说是一件比较麻烦的事。</p>
</blockquote>
<p>这里我们果断使用<code>jenkinsci/blueocean</code>镜像,使用<code>docker pull</code>命令拉取:</p>
<pre><code>$ 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
</code></pre>
<p>在本地镜像仓库确认是否已存在:</p>
<pre><code>$ 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
...
</code></pre>
<h2 id="运行容器">运行容器</h2>
<p>现在,就可以基于下载的镜像运行 Jenkins 容器了,有以下两种运行方式供你参考:</p>
<p><strong>方式一</strong>:直接运行,运行期间产生的所有数据都保存在容器内部,容器销毁,数据丢失。</p>
<pre><code>docker run \
--name jenkins-blueocean \
-d \
-p 8081:8080 \
-p 50001:50000 \
jenkinsci/blueocean
</code></pre>
<p><strong>方式二</strong>:Docker 会在宿主机上创建一个数据卷<code>jenkins-data</code>,容器映射该卷以持久化数据。</p>
<pre><code>docker run \
--name jenkins-blueocean \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
jenkinsci/blueocean
</code></pre>
<blockquote>
<p>Tips:8080 端口用来公开访问 Web 界面,50000 端口允许访问远程 Java (JIRA) API。</p>
</blockquote>
<p>这里我使用了第二种方式启动了 一个 Jenkins 容器应用:</p>
<pre><code>$ docker run \
--name jenkins-blueocean \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
jenkinsci/blueocean
93f88d6ca2129fae971298e98e20091570f6903463b203a9235660856f63020e
</code></pre>
<p>最后使用<code>docker ps</code>命令确认容器是否已经后台运行:</p>
<pre><code>$ 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
</code></pre>
<h2 id="配置-jenkins">配置 Jenkins</h2>
<p>以上如果一切正常,现在就可以通过<code>http://<ipaddress>:8080</code>访问 Jenkins 的 Web 界面了。</p>
<p><strong>Step1</strong>:解锁 Jenkins。</p>
<p><img src="https://img2018.cnblogs.com/blog/785976/201907/785976-20190710152852076-808141608.png" alt="Alt Text" title="Title Text" loading="lazy"></p>
<p>管理员初始密码被放到了<code>/var/jenkins_home/secrets/initialAdminPassword</code> 文件中。</p>
<p>因为我们把 Jenkins 部署在了 Docker 容器中,因此需要先进入到容器,再去查看对应的文件<code>initialAdminPassword</code>内容:</p>
<pre><code>$ docker exec -it jenkins-blueocean /bin/bash
jenkins@93f88d6ca212:/$ cat /var/jenkins_home/secrets/initialAdminPassword
a6f6d08fcc474178833001d1fc79be62
</code></pre>
<p>如上输出中,<code>a6f6d08fcc474178833001d1fc79be62</code> 便是我们需要的管理员密码,复制并粘贴到 Web 界面,点击继续即可解锁 Jenkins。</p>
<p><strong>Step2</strong>:安装插件。</p>
<p><img src="https://img2018.cnblogs.com/blog/785976/201907/785976-20190710153716323-1817114899.png" alt="" loading="lazy"></p>
<p>Jenkins 可以说完全由插件来驱动的,所以安装一些基础的插件是非要必要的,这里我们选择 <em>安装推荐的插件</em> ,然后静静地等待插件安装完成即可。</p>
<p><strong>Step3</strong>:创建用户。</p>
<p><img src="https://img2018.cnblogs.com/blog/785976/201907/785976-20190710154532327-734240848.png" alt="" loading="lazy"></p>
<p>接着继续下一步操作,提示需要创建一个新的用户,自行填写即可。</p>
<p><strong>Step4</strong>:配置实例。</p>
<p><img src="https://img2018.cnblogs.com/blog/785976/201907/785976-20190710155334156-1276011137.png" alt="" loading="lazy"></p>
<p>看看提示,没有问题就点 <em>保存并完成</em> 即可。</p>
<p>至此,Jenkins 初始化配置过程也就完成了。正式开启你的 CI&CD 之旅吧!</p>
<p><img src="https://img2018.cnblogs.com/blog/785976/201907/785976-20190710155250454-985632877.png" alt="" loading="lazy"></p>
<h2 id="更换主题">更换主题</h2>
<p>如果你不喜欢 Jenkins 官方默认页面样式,你可以尝试通过如下项目更换一套基于 Material Design 设计的主题。</p>
<p>https://github.com/afonsof/jenkins-material-theme</p>
<p>安装过程请参考其相关文档,此处不再详述。</p>
<h2 id="相关资源">相关资源</h2>
<ul>
<li>Install with Docker | Jenkins Documentation </li>
<li>jenkinsci/blueocean - Docker Hub</li>
<li>jenkins - Docker Hub</li>
</ul><br><br>
来源:https://www.cnblogs.com/esofar/p/11163583.html
頁:
[1]