Docker版本Jenkins的使用
一. 什么是Jenkins
Jenkins是当前非常流行的一款持续集成工具,可以帮助大家把更新后的代码自动部署到服务器上运行。
二. 为什么用docker版的Jenkins
Jenkins主要有三种安装方式
- 下载官方war包,放到tomcat中直接运行。
- yum安装,感兴趣的朋友可以参考之前我写的一篇文章在linux服务器上安装Jenkins。
- 使用官方docker镜像。
本人之前也是使用yum安装的方式安装Jenkins的
,不过自动用上docker
后,就再也没那样安装过。不得不说直接使用docker
镜像真是简单除暴无脑。
三. 准备工作
要使用docker镜像,首先你得先安装docker。对docker不熟悉的朋友可以参考我之前写的一篇docker安装和简单使用的教程。
四. 寻找官方镜像
我们可以到Jenkins官网上寻找docker镜像地址。
点击docker按钮,自动跳转到dockerhub,在这里可以找到下载命令
五. 启动Jenkins
找到了官方镜像后,我们就可以开始安装了。进入安装好了docker的linux服务器,这里我们以之前教程介绍的阿里云centos7.3环境为例。
输入命令,下载Jenkins
官方镜像到服务器上。
docker pull jenkins/jenkins
耐心等待下载完成,输入命令查看下载完成的镜像
docker images
镜像下载完成,下面就要开始启动容器了。启动容器前,建议大家仔细阅读前面寻找镜像时Docker Hub上关于jenkins镜像的详细说明。
在镜像文档里,我们知道Jenkins
访问的端口号是8080
,另外还需要暴露一个tcp
的端口号50000
。我们使用如下命令启动Jenkins
镜像。
docker run -d -p 80:8080 -p 50000:50000 -v jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins docker.io/jenkins/jenkins
这里逐条解释下各参数的意义。
-d
后台运行镜像-p 80:8080
将镜像的8080端口映射到服务器的80端口-p 50000:50000
将镜像的50000端口映射到服务器的50000端口-v jenkins:/var/jenkins_home
/var/jenkins_home
目录为jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录。-v /etc/localtime:/etc/localtime
让容器使用和服务器同样的时间设置。--name jenkins
给容器起一个别名
启动后输入命令docker ps -a
查看所有容器,可以看到jenkins
已成功启动。
六. 配置Jenkins
在浏览器输入http://ip
进入Jenkins登录页面。页面会提示你到服务器的指定位置获取初始化密码。
注意,因为我们是docker
版的jenkins
,所以这个路径不是服务器的路径,而是容器内的路径。我们可以通过如下命令从容器中获取到初始化密码。
docker exec jenkins tail /var/jenkins_home/secrets/initialAdminPassword
在页面输入密码,点击Continue
,进入插件安装页面。我们点击左边的Install suggested plugins
,安装推荐插件就好。
耐心等待安装完成
安装好插件后,系统会提示建立管理员账户。
创建管理员账户后进入系统,我们先来配置常用工具。
进入工具配置页,首先看到的就是jdk配置,这里我们先使用自动安装的java8
。
注意,自动安装jdk
需要你填入oracle
的账号密码,这样Jenkins
才能自动帮你到oracle
安装。如果没有oracle
账号,建议先去Oracle官网注册一下。
配置好jdk
自动安装后,我们继续配置git
。git
的字段安装更简单,起个别名,勾上自动安装
。
配置好git我们继续配置Gradle
,一样简单,起个别名,勾上自动安装
,选择Gradle
的版本。
至此,jenkins就安装配置完成了。关于具体如何使用jenkins进行自动发布,可以参考本人另一篇文章linux服务器中Jenkins集成git、Gradle持续构建Springboot项目。
七. 生成SSHKey
这里再补充一章说明如何生成SSHKey。容器从github上面下载代码的时候需要用到。因为咱们这个Jenkins是基于docker的,不是直接安装在服务器上,这里有很大的不同。
要生成容器的SSHKey,首先要先进入容器
docker exec -it jenkins /bin/bash
进入容器后生成sshkey
ssh-keygen -t rsa -C "123@qq.com"
在容器内输入exit
离开容器,使用如下命令获取公钥
tail /var/lib/docker/volumes/jenkins/_data/.ssh/id_rsa.pub
作者:低调的微胖
链接:https://www.jianshu.com/p/0391e225e4a6
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
Docker版本Jenkins的使用的更多相关文章
- docker中Jenkins启动无法安装插件,版本过低
一.问题现象: 使用docker启动jenkins,在jenkins启动后却无法安装jenkins的插件,一直提示安装失败且从log看到提示信息显示为需要升级jenkins的版本 二.原因分析: 在使 ...
- 构建Docker+Jenkins持续集成环境
docker和Jenkins不是什么新东西了,两者结合也不是什么稀奇的事情,也已经有很多Jenkins和docker相结合的文章,此文仅为自己的一点心得实践,如有不对的地方,欢迎大家纠正. 先贴上大致 ...
- 使用docker搭建Jenkins 及slave的配置
安装Jenkins 使用docker docker run -d -p 8080:8080 -p 50000:50000 -v /opt/jenkins_home:/var/jenkins_home ...
- 使用Docker安装Jenkins
Jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 环境准备 腾讯云 硬件配置: ...
- 从Docker 到Jenkins 到Ansible的部署经验
从Docker 到Jenkins 到Ansible的部署经验 工作中,除了开发功能,还负责系统的部署工作.我从频繁的部署工作中,逐渐找到了一些偷懒的方法.从传统的Java -jar命令启动服务,到通过 ...
- docker 安装jenkins
基于docker 进行安装 软件,首先需要有docker环境. 1.docker 下载 jenkins 镜像 指定版本 ,因为低版本的后面安装 软件会失败(亲测). docker pull jenki ...
- Docker的安装以及使用Docker安装jenkins,gogs,tomcat(一)
(1)Docker的安装 官网安装链接 :https://yeasy.gitbooks.io/docker_practice/content/ 卸载旧版本 旧版本的 Docker 称为 docker ...
- 【Devops】【docker】【CI/CD】2.docker启动jenkins环境+安装必要的插件
[注意:]jenkins的docker镜像,需要从官网进入直接获取,其他地方获取到的docker镜像,可能因为Jenkins版本过低,导致后续插件安装失败等问题!!! ================ ...
- 非docker的jenkins的master如何使用docker的jenkins的slave
前提 1.存在jenkins的master,这个master不是docker的,是通过yum install jenkins安装的 2.使用docker创建n个jenkins,方法是docker pu ...
随机推荐
- ADVERSARIAL EXAMPLES IN THE PHYSICAL WORLD
目录 概 主要内容 least likely class adv. 实验1 l.l.c. adv.的效用 实验二 Alexey Kurakin, Ian J. Goodfellow, Samy Ben ...
- 编写Java程序,编写自定义异常类封装将棋子落在格子中已有棋子的异常
返回本章节 返回作业目录 需求说明: 完善控制台版五子棋,判断用户所下棋子的位置,是否已经存在棋子,如果已经存在,则抛出用户自定义异常,提示用户该位置已经有棋子. 实现思路: 创建用户自定义异常类Go ...
- emqx的一个配置参数
这个参数尝试改为internal后,所有用户都可以匿名登录
- MongoDB开发最佳实践
MongoDB开发最佳实践 连接到MongoDB · 关于驱动程序:总是选择与所用之MongoDB相兼容的驱动程序.这可以很容易地从驱动兼容对照表中查到: · 如果使用第三方框架(如Spring Da ...
- [学习笔记] Oracle字段类型、建表语句、添加约束
SQL语句介绍 数据定义语言(DDL),包括 CREATE. ALTER. DROP等. 数据操纵语言(DML),包括 INSERT. UPDATE. DELETE. SELECT - FOR UPD ...
- CSS基础-4 定位
CSS定位和浮动 css定位:改变页面的位置 定位机制有以下三种 普通流 浮动 绝对布局 定位的属性: position:把元素放在一个静态的.相对的.绝对的.或固定的位置中 top ...
- 利用EndpointSlices扩展Kubernetes网络,提供更强的可伸缩性和功能
EndpointSlices是一个令人兴奋的新API,它提供了Endpoints API的可扩展和可扩张的替代方案.EndpointSlice跟踪Pod服务后面的IP地址,端口,准备情况和拓扑信息.在 ...
- Python网络编程之网络基础
Python网络编程之网络基础 目录 Python网络编程之网络基础 1. 计算机网络发展 1.1. OSI七层模型 1.2. 七层模型传输数据过程 2. TCP/IP协议栈 2.1 TCP/IP和O ...
- 关于jar包和war读取静态文件
在war包中static中的静态文件,打成jar包后却读取不到,这是为什么呢,让我门看下两种读取的区别 一.war包中都取静态模板文件 public static void download(Stri ...
- elasticsearch拼写纠错之Term Suggester
一.什么是拼写纠错 拼写纠错就是搜索引擎可以智能的感知用户输入关键字的错误,并使用纠正过的关键字进行搜索展示给用户:拼写纠错是一种改善用户体验的功能: elasticsearch提供了以下不同类型的s ...