【Linux】Docker 搭建 Jenkins
🍁博主简介
🏅云计算领域优质创作者
🏅华为云开发者社区专家博主
🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
目录
一、Jenkins到底是什么?
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。下面为项目持续集成和交互的流程图
二、持续集成、自动部署流程
开发人员将代码push到gitlab中,触发jenkins的自动pull拉取代码,通过maven编译、打包,然后通过执行shell脚本使docker构建镜像并push到私服(或者阿里云)仓库,此操作完成后jenkins服务器上再执行SSH命令登录到部署服务器,docker从仓库(私服)拉取镜像,启动容器。整个操作流程完成。
三、使用docker部署Jenkins
1 安装docker服务并添加docker的镜像加速源
首先安装docker,并且添加docker的镜像加速源;添加docker的镜像源可以加速拉取镜像;
docker安装的方式可参考:linux(centos)中部署docker(步骤超全,含带一些发展史和一些概念)
更换docker的镜像源:
#切换到/etc/docker/
cd /etc/docker/
#创建daemon.json文件
touch daemon.json
#或者直接vim daemon.json
vim daemon.json
{
"registry-mirrors":[
"https://fdsfa43fg.mirror.aliyuncs.com"
]
}
#写入完成之后保存退出重新加载配置并重启docker服务
#保存退出
:wq
#重新加载配置
systemctl daemon-reload
#重启docker服务
systemctl restart docker
重启完可用docker info命令查看是否添加上
docker info
2 拉取Jenkins镜像
docker pull jenkins/jenkins
等待拉取即可;
拉取完成之后查看镜像
[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins latest 55860ee0cd73 10 months ago 442MB
3 创建Jenkins挂载目录并赋予权限
3.1 稍后可以将docker内的目录挂载到此目录上,方便操作容器内文件夹而不需要进入容器
mkdir -p /var/jenkins_home
3.2 为挂载目录赋予权限
chmod 777 /var/jenkins_home
4 创建Jenkins容器并运行
docker run -itd --name jenkins --restart=always --network=host --privileged=true -v /var/jenkins_home/:/var/jenkins_home/ -v /etc/localtime:/etc/localtime jenkins/jenkins:latest
创建并启动一个名为Jenkins的docker容器:
-it是以交互式创建,-d是后台执行;
–name是让其自定义一个名字jenkins(自定义);
–restart是设置开机自动重启 always开机自动重启;
–network是网络模式 host是主机模式;
–privileged是加上这个参数容器内就会拥有和容器外一样的root权限了;
-v是将容器中的/var/jenkins_home挂载到本机的/var/jenkins_home目录,前者为本机地址,后者为容器地址 ;
最后jenkins/jenkins则是本次运行使用的镜像;
5 页面访问jenkins
docker ps -a
jenkins运行中页面访问
ip:port
如:遇到页面访问不到的情况,可使用netstat -anput | grep port
查看端口是否被占用;
5.1 解锁 Jenkins
根据提示找到jenkins的密码;
[root@localhost secrets]# cat /var/jenkins_home/secrets/initialAdminPassword
82112870c37694a46ab4f732dafsfa0019334ef0
将密码复制到页面上,点击继续;
5.2 自定义Jenkins—安装推荐插件
可选择使用推荐插件
或自定义插件
;推荐使用推荐插件
。
5.2.1 配置镜像加速器
插件安装失败或速度过慢,可通过配置镜像加速解决。
#停止jenkins容器
docker stop jenkins
#进入jenkins挂载的文件中
cd /var/jenkins_home/
#编辑配置文件
vim hudson.model.UpdateCenter.xml
#将url值修改为清华大学官方镜像地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
#保存退出重启容器
:wq
docker restart jenkins
5.3 创建管理用户
5.4 实例配置
直接保存并完成即可
5.5 开始使用
四、Jenkins安装Github所需插件
需要安装几个必须的插件:CloudBees Credentials
、GitHub API Plugin
、SSH Credentials Plugin
、Git client plugin
、SCM API
、Mailer Plugin
、Plain Credentials Plugin
、GIT plugin
、GitHub Plugin
、Publish Over.SSH
、Maven Integration
五【附加】 github生成Token步骤
1 访问github并登录
github官网:https://github.com/
登录:
2 配置Personal Access Token
在对项目有写权限的用户上获取token进入github –> setting –> Developer settings –> Personal Access Token –> Token –> Generate new token
找到tokens,新建tokens并设置读、写、执行权限
相关文章
- [Linux] linux awk命令详解
- linux上安装Docker(非常简单的安装方法)
- zedboard烧写SD卡启动linux镜像
- 【Docker】解决docker通过volumes挂载文件不生效,修改后容器内数据不同步,需要重启容器才能同步的问题
- 【Docker】docker安装Jenkins
- linux系统方面的知识
- Linux安装MySQL
- LINUX下为LVM磁盘增加硬盘空间
- linux内核数据结构之kfifo
- 每天一个Linux命令之打包压缩命令
- Docker 基础技术之 Linux namespace 源码分析
- Linux下执行Java服务程序
- Linux - 最常用的三个网络命令:route & traceroute & ip
- [Docker] Container & image (docker run)
- Linux yum离线安装神器yumdownloader
- Docker 鸟瞰docker生态系统
- Linux vim命令模式、末行模式、编辑模式相互切换
- [手游新项目历程]-40-linux环境实现C/C++程序崩溃退出时打印栈信息
- L75.linux命令每日一练 -- 第11章 Linux系统管理命令 -- lsof和uptime
- L60.linux命令每日一练 -- 第九章 Linux进程管理命令 -- top和nice
- L57.linux命令每日一练 -- 第九章 Linux进程管理命令 -- ps和pstree
- 【云原生之Docker实战】使用docker部署mm-wiki文档系统
- linux驱动由浅入深系列链接
- Linux 常用解压缩命令
- Linux|centos7下部署安装alertmanager并实现邮箱和微信告警(基础篇---二)
- Linux中安装/部署docker-compose
- 【linux】Linux操作系统常用指令大全
- Docker学习笔记10:docker使用之仓库管理
- Linux命令 移动/复制文件/目录到指定目录下
- 【Docker系列】4.docker-compose文件如何传递参数
- 使用lrzsz向Linux上传下载文件