zoukankan      html  css  js  c++  java
  • 使用 Docker 安装 Jenkins 的最佳方式

    说在前面

    本篇内容非常简单,讲述了如何快速在 Docker 上部署一个 Jenkins 实例,避免多采坑,浪费不必要的练习时间。

    本文实验环境:

    • 操作系统:Centos 7.5
    • Docker Version:18.09.6

    下载镜像

    打开终端,输入docker search命令搜索 Docker Hub 上可用的 Jenkins 镜像:

    $ 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标签判断,位列第一、名字为jenkins的是 Jenkins 官方提供的镜像。我们是不是应该使用这个官方镜像呢?

    如果你看过 Jenkins 文档中 Docker 安装 小节,会发现官方推荐使用的镜像是jenkinsci/blueocean,该镜像包含当前的长期支持 (LTS) 的 Jenkins 版本 (可以生产使用) ,并捆绑了所有 Blue Ocean 插件和功能。

    博主第一次安装的时候使用的是jenkins镜像,其集成的 Jenkins 版本比较高,结果出现好多插件不兼容的情况,对于我等小白来说是一件比较麻烦的事。

    这里我们果断使用jenkinsci/blueocean镜像,使用docker pull命令拉取:

    $ 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
    

    配置 Jenkins

    以上如果一切正常,现在就可以通过http://<ipaddress>:8080访问 Jenkins 的 Web 界面了。

    Step1:解锁 Jenkins。

    Alt Text

    管理员初始密码被放到了/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

    安装过程请参考其相关文档,此处不再详述。

    相关资源

  • 相关阅读:
    Dll 入口函数
    .net中Global.asax
    jquery图片翻转
    c#发送邮件
    jquery ajax里面的datetype设成json时,提交不了数据的问题
    今儿写前台tab效果时用的,(jquery)
    C# 的一些常用日期时间函数(老用不熟)
    下午的表单注册~~~
    CSS图片、文字垂直居中对齐
    asp.net 用继承方法实现页面判断session
  • 原文地址:https://www.cnblogs.com/esofar/p/11163583.html
Copyright © 2011-2022 走看看