Docker 安装 Jenkins

Jenkins 是一款开源 CI & CD 软件,用于自动化各种任务,包括构建、测试和部署软件。

在项目开发场景中主要用于自动发版,解放了运维人员繁琐的工作,也便于进行版本管理。

Jenkins 可以直接运行 war 包安装,也可以使用 Docker 安装。

war 包安装过程简单,配置也相对于 Docker 安装简单,但占用资源更多,且不好管理,还是推荐使用 Docker 安装。

运行镜像

  1. 拉取镜像
bash 复制代码
docker pull jenkins/jenkins
  1. 运行镜像
bash 复制代码
docker run --name=jenkins \
           --restart=always \
           --privileged=true \
           -u root \
           -p 8080:8080 \
           -p 50000:50000 \
           -v /home/docker/jenkins/jenkins_home:/var/jenkins_home \
           -v $(which docker):/usr/bin/docker \
           -v /var/run/docker.sock:/var/run/docker.sock \
           -e TZ=Asia/Shanghai \
           -d \
           jenkins/jenkins
  1. 确认运行
bash 复制代码
docker ps

【STATUS】显示【UP】即为正常运行。

如果觉得不保险可以再查看日志确认:

bash 复制代码
docker logs -fn 200 jenkins

日志出现这一行代表运行成功。

访问系统

访问地址:++服务器IP:8080++

这里提示要输入密码,在服务器运行以下命令可以快速得到密码:

bash 复制代码
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

将得到的密码填入即可登录系统。

安装插件

新手推荐直接安装推荐的插件,老手再自行选择。

点击安装推荐插件可能出现如下报错:

这是因为缺少 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">cloudbees-folder</font> 插件,下载即可:cloudbees-folder下载地址

点一个版本下载即可(为了避免兼容性问题,最好选最新版)

下载后得到 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">cloudbees-folder.hpi</font> 文件

接下来只需将它拷贝到 Jenkins 的插件目录中即可,插件目录的位置在启动 Jenkins 容器时所挂载的宿主机目录 <font style="color:rgb(77, 77, 77);">/war/WEB-INF/detached-</font><font style="color:rgb(78, 161, 219) !important;">plugins</font>

这里为:<font style="color:rgb(77, 77, 77);">/home/docker/jenkins/jenkins_home/war/WEB-INF/detached-plugins/</font>

然后重启容器:

bash 复制代码
docker restart jenkins

然后再刷新页面按照之前的步骤获取密码登录后安装推荐的插件即会出现如下安装页面:

由于网络等原因,有可能出现部分插件安装失败的情况:

点击【重试】再次安装即可。

创建管理员用户:

这样,Jenkins 就安装完毕了。

相关推荐
小毅&Nora1 分钟前
【Java线程安全实战】⑨ CompletableFuture的高级用法:从基础到高阶,结合虚拟线程
java·线程安全·虚拟线程
冰冰菜的扣jio1 分钟前
Redis缓存中三大问题——穿透、击穿、雪崩
java·redis·缓存
Joren的学习记录5 分钟前
【Linux运维大神系列】Kubernetes详解3(kubeadm部署k8s1.23高可用集群)
linux·运维·kubernetes
小璐猪头14 分钟前
专为 Spring Boot 设计的 Elasticsearch 日志收集 Starter
java
眠りたいです26 分钟前
Docker核心技术和实现原理第二部分:docker镜像与网络原理
运维·网络·docker·容器
ps酷教程34 分钟前
HttpPostRequestDecoder源码浅析
java·http·netty
闲人编程34 分钟前
消息通知系统实现:构建高可用、可扩展的企业级通知服务
java·服务器·网络·python·消息队列·异步处理·分发器
XiaoHu020734 分钟前
Linux多线程(详细全解)
linux·运维·服务器·开发语言·c++·git
Y淑滢潇潇1 小时前
RHCE Day 10 流程控制之条件语句和循环结构
linux·运维·rhce
栈与堆1 小时前
LeetCode-1-两数之和
java·数据结构·后端·python·算法·leetcode·rust