基于Docker平台的Jenkins安装与Blue Ocean使用入门(1)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 基于Docker平台的Jenkins安装与Blue Ocean使用入门(1)

环境介绍:

CentOS 7.5
Docker 19.03.8
Jdk 1.8.0
Git 2.20.4

注意:


 如果将Jenkins作为Docker 容器运行,安装JDK跟Git不是必需的。


Docker安装教程:


https://blog.csdn.net/qq_44895681/article/details/105540702


在Docker中下载并运行Jenkins


 建议使用的Docker映像是jenkinsci/blueocean image(来自 the Docker Hub repository)。 该镜像包含当前的长期支持 (LTS) 的Jenkins版本 (可以投入使用) ,捆绑了所有Blue Ocean插件和功能。这意味着你不需要单独安装Blue Ocean插件。

[root@localhost ~]# docker search jenkins
NAME                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
jenkins                                Official Jenkins Docker image                   4758                [OK]                
jenkins/jenkins                        The leading open source automation server       2021                                    
jenkinsci/blueocean     //推荐               https://jenkins.io/projects/blueocean           512                                     
jenkinsci/jenkins                      Jenkins Continuous Integration and Delivery …   382    
[root@localhost ~]# docker pull jenkinsci/blueocean      //下载镜像
Using default tag: latest
latest: Pulling from jenkinsci/blueocean
e7c96db7181b: Pull complete
...
[root@localhost ~]# docker images
REPOSITORY                      TAG                      IMAGE ID            CREATED             SIZE
jenkinsci/blueocean             latest                   c522b7f778ef        21 hours ago        569MB           
[root@localhost ~]# docker run -itd -p 8080:8080 jenkinsci/blueocean      
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                               NAMES
ca1e1c655590        jenkinsci/blueocean   "/sbin/tini -- /usr/…"   2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp, 50000/tcp   silly_wilbur

 映射(例如“发布”)jenkinsci/blueocean 容器的端口8080到主机上的端口8080。第一个数字代表主机上的端口,而最后一个代表容器的端口。因此,如果您为此选项指定 -p 49000:8080 ,您将通过端口49000访问主机上的Jenkins。


访问Jenkins/blueocean Docker容器


 通过终端/命令提示符访问docker exec ,则可以添加一个选项 --name jenkins-blueocean,这会为 jenkinsci/blueocean 容器命名为 "jenkins-blueocean" 。这意味着你可以使用如下命令访问容器(通过单独的终端/命令提示符窗口) :


docker exec -it jenkins-blueocean /bin/bash

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                               NAMES
ca1e1c655590        jenkinsci/blueocean   "/sbin/tini -- /usr/…"   2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp, 50000/tcp   silly_wilbur 
[root@localhost ~]# docker exec -it ca1e1c65 /bin/bash
         //若docker run没有使用--name,也可用容器运行ID访问容器
bash-4.4$ java -version       //容器内java环境版本
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (IcedTea 3.12.0) (Alpine 8.212.04-r0)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
bash-4.4$ git --version      //容器内git版本
git version 2.20.4
bash-4.4$ netstat -antulp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:50000           0.0.0.0:*               LISTEN      6/java
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      6/java

访问Jenkins Docker容器控制台日志


 您可能需要访问Jenkins控制台日志。例如,在解锁 Jenkins 作为安装后设置向导的一部分时。如果在docker run时没有指定分离模式选项 -d ,那么Jenkins控制台日志则是通过运行此Docker命令提示符窗口显示。


 否则,您可以通过访问Jenkins控制台日志 Docker logs中 的 jenkinsci/blueocean ,使用以下命令:


docker logs <docker-container-name>


 您的 <docker-container-name> 可以使用docker ps 命令获得 。如果您在运行docker run 命令时指定了 --name 参数(如:--name jenkins-blueocean ),则只需使用以下 docker logs 命令:


docker logs jenkins-blueocean


 如果没有指定--name,也可以使用容器运行时的ID来查看容器日志。

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                               NAMES
ca1e1c655590        jenkinsci/blueocean   "/sbin/tini -- /usr/…"   2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp, 50000/tcp   silly_wilbur
[root@localhost ~]# docker logs ca1e1c65

安装后设置向导

11.png

[root@localhost ~]# docker exec -it ca1e1c65 /bin/bash
bash-4.4$ cat /var/jenkins_home/secrets/initialAdminPassword
12a1f53845254ce9ae67d221c181be94

 在解锁Jenkins 页面上,将此密码粘贴到管理员密码字段中,然后单击继续 。


自定义Jenkins


两个选项可以设置:


  • 安装建议的插件 - 安装推荐的一组插件,这些插件基于最常见的用例。

  • 选择要安装的插件 - 选择安装的插件集。当你第一次访问插件选择页面时,默认选择建议的插件。

13.png14.png

12.png

注意:


 可以看到上面有些插件安装失败,在所有插件安装完之后可以点击“重试”,来继续安装之前安装失败的插件,也可以点击“继续”,再按照下面的方法安装插件。


插件安装失败解决方法:https://blog.csdn.net/qq_44895681/article/details/104633654


创建第一个管理员用户

15.png16.png17.png

Blue Ocean 入门


安装 Blue Ocean


Blue Ocean 可以用以下方式安装:


  • 作为 已有Jenkins实例上的一组插件

  • Jenkins-Docker镜像的一部分

在已有Jenkins实例上安装


 在大多数平台安装Jenkins时,默认情况下不安装 Blue Ocean 插件 及其所有其他依赖插件(组成Blue Ocean“插件套件”)。


 要在现有的Jenkins实例上安装Blue Ocean插件套件,您的Jenkins实例必须运行Jenkins 2.7.x或更高版本。


 任何拥有 Administer 权限(通过 基于Matrix 安全设置)的Jenkins用户都可以在Jenkins实例上安装插件 。拥有次权限的Jenkins用户还可以配置系统上其他用户的权限。


要将Blue Ocean安装到您的Jenkins实例:


  1.如果需要,请确保您已经登录到jenkins(作为具有 管理员 权限的用户).


  2.从Jenkins主页(即Jenkins经典用户界面的仪表板),单机左侧的 管理Jenkins ,然后单击中心的 管理插件 。


  3.点击 可用的 选项卡,然后在 过滤 文本框键入 blue ocean ,将过两次插件列表为名称/描述包含“blue”和“ocean”的插件名单。

18.png

  4.选择 安装 列顶部的 Blue Ocean 插件复选框,然后单击 立刻下载并在重启后安装 按钮(推荐)或 安装而不重新启动按钮 。


注意:


  无需选择此过滤列表中其他插件的复选框,因为 Blue Ocean 插件具有其他插件的依赖关系(构成Blue Ocean的插件套件),当您点击安装, 其他插件将被自动选择和安装。如果你选择 安装不重启 按钮, 你可能需要重启Jenkins来获取Blue Ocean的完整功能。


  Blue Ocean 在安装后不需要额外的配置,现有的pipeline 和其他项目(如自由风格作业)将照常运行。但是,请注意, 首次使用特定的 Git 服务(即GitHub,Bitbucket或普通Git服务器)在 Blue Ocean中创建pipeline 时,Blue Ocean会提示您输入credentials 以访问Git服务器上的存储库。在Blue Ocean可以将 Jenkinsfile 写入存储库之前


作为Jenkins-Docker镜像的一部分


  Blue Ocean套件也与Jenkins捆绑在一起,作为Jenkins Docker镜像 (jenkinsci/blueocean)的一部分,该镜像可以从 Docker Hub 存储库获得。


访问 Blue Ocean


  一旦Jenkins环境安装了Blue Ocean,登录到Jenkins经典UI 后,您可以通过点击左侧的 打开Blue Ocean 来访问Blue Ocean页面。或者,您可以在您的Jenkins url后面追加 /blue 直接访问Blue Ocean (如 http://192.168.2.73:8080/blue)

19.png20.png


创建流水线


  Blue Ocean 能够更容易的在Jenkins中创建一个流水线。


  流水线可以由源代码控制中存在的Jenkinsfile 生成, 或者使用 Blue Ocean 流水线编辑器 生成一个新的流水线(作为 Jenkinsfile 会提交到源代码控制中)。


配置流水线项目

21.png

GitHub仓库

22.png

  在 Connect to GitHub 部分的Your GitHub access token字段, 输入你的 GitHub 访问令牌。

23.png

  如果你没有 GitHub 访问令牌, 点击 Create an access key here


创建访问令牌


 1.在一个新的选项卡中, 登录 GitHub 账户并且在 GitHub的 New Personal Access Token 页面,为你的GirHub访问令牌 (e.g. Blue Ocean)输入一个简短的 Token description。


  Note: 访问令牌通常是一个字母数字字符串,它通过你的GitHub 账户对你的GitHub账户访问各种特性和区域的权限进行相应的处理。新的访问令牌过程 (通过上面的 Create an access key here 链接触发) 具有预选的合适权限, Blue Ocean 需要访问你的GitHub账户并与其进行交互。


 2.向下滚动直到页面的末尾,然后点击 Generate token。


 3.在生成的 Personal access tokens 页面, 复制新生成的访问令牌。


 4.回到Blue Ocean, 粘贴访问令牌到 Your GitHub access token*字段并点击 *Connect。


  你当前/登陆的Jenkins用户现在可以访问 GitHub a账户 (由你的访问令牌提供), 所以你现在可以 选择 GitHub 账户/组织和存储库。


 Jenkins 为Jenkins用户注册了带有以下详细信息的凭证:


  Domain:blueocean-github-domain


  ID:github


  Name:<jenkins-username>/****** (GitHub Access Token)

24.png

25.png26.png

选择 GitHub 账户/组织和存储库


此时, Blue Ocean 提示你选择 GitHub 账户或你所在的组织, 以及它包含的用于构建你流水线项目的存储库。


 1.在 Which organization does the repository belong to? 部分, 点击:


  • 你的 GitHub 账户为你自己的 GitHub 仓库中的或GitHub的其他地方创建流水线项目。

  • 你所在的组织为组织内的GitHub仓库创建流水线项目。

 2.在 Choose a repository 部分, 点击存储库 (在你 GitHub 账户或组织内) ,从而构建你的流水线项目。如果你的仓库的列表很长, 你可以使用 Search 选项来筛选这个列表。

27.png

3.点击 Create Pipeline。


 Blue Ocean 将会扫描你本地仓库的分支来获得 Jenkinsfile 并为每个包含 Jenkinsfile 的分支运行流水线。如果Blue Ocean 找不到任何 Jenkinsfile, 会提示你通过 流水线编辑器 (通过再次点击 Create Pipeline)创建一个。


注意: 通过Blue Ocean创建的流水线项目实际上是 "多分支流水线"。因此, Jenkins在你仓库的任何分支中寻找至少一个Jenkinsfile 。

28.png29.png


这样我们就构建了一个简单的流水线项目。


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
25 2
|
1月前
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【10月更文挑战第2天】本文将带你走进云原生的世界,从基础的Docker容器技术开始,逐步深入到Kubernetes集群管理。我们将通过实际代码示例,探索如何利用这些工具构建、部署和管理现代云应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,让你在云原生领域迈出坚实的一步。
83 5
|
1月前
|
Linux 持续交付 Docker
掌握Docker:从入门到实践
Docker 是一个开源容器引擎,允许开发者将应用及其依赖打包成可移植的容器,在任意 Linux 机器上运行。本文从基本概念入手,详细介绍 Docker 的安装、基本操作、镜像构建及 Docker Compose 的使用,并通过实战案例展示如何部署 Web 应用、构建微服务架构及实现 CI/CD。通过学习,你将掌握 Docker 的核心功能,提升应用开发和部署效率。
|
7天前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
13天前
|
运维 持续交付 虚拟化
docker入门详解!!!
本文介绍了容器技术的发展历程,从物理机到虚拟化再到容器化,重点讲解了Docker的诞生及其优势。Docker通过轻量级的容器技术,实现了资源的高效利用、快速启动、环境一致性、持续交付和部署等优点。文章还详细解析了Docker的架构和工作原理,包括Docker Daemon、REST接口、Docker Client等组件,以及容器与虚拟机的差异。
50 2
|
21天前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
32 3
|
26天前
|
Ubuntu Shell 开发者
Docker入门:轻松开始容器化之旅
【10月更文挑战第17天】Docker 是一种开源的应用容器引擎,它让开发者能够“一次构建、到处运行”。Docker 通过容器化技术将应用程序及其依赖打包在一起,从而确保应用在任何环境中都能一致地运行。本文将为新手用户提供一个全面的Docker入门指南,包括基本概念、优势、安装配置以及如何创建和管理容器。
45 2
|
1月前
|
存储 运维 云计算
探索Docker容器化:从入门到实践
在这个快速发展的云计算时代,Docker容器化技术正在改变应用的开发、部署和管理方式。本文旨在为初学者提供一个关于Docker的全面入门指南,并通过实践案例展示Docker在实际开发中的应用。我们将一起了解Docker的核心概念、基本操作、网络和存储,以及如何构建和部署一个简单的Web应用。无论你是开发者还是运维人员,本文都会帮助你快速掌握Docker的核心技能。
|
1月前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。
|
1月前
|
Kubernetes Cloud Native Docker
云原生入门:Kubernetes和Docker的协同之旅
【10月更文挑战第4天】在这篇文章中,我们将通过一次虚拟的旅行来探索云原生技术的核心——Kubernetes和Docker。就像乘坐一艘由Docker驱动的小船启航,随着波浪(代码示例)起伏,最终抵达由Kubernetes指挥的宏伟舰队。这不仅是一段技术上的旅程,也是理解现代云架构如何支撑数字世界的冒险。让我们扬帆起航,一探究竟!