运维 | 使用 Docker 安装 Jenkins | Jenkins

运维 | 使用 Docker 安装 Jenkins | Jenkins

前言

本期内容主要是为了学习如何通过 Docker 安装Jenkins,仅作为记录与参考,希望对大家有所帮助。

准备工作

  • 系统:CentOS 7.9
  • 配置:4c8g

快速安装

下面以 Docker 方式安装 Jenkins 为例

环境搭建

安装 Docker

  • 确保 yum 包更新到最新
sql 复制代码
yum update
  • 卸载旧版本
arduino 复制代码
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  • 设置仓库源
arduino 复制代码
yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  • 开始安装
bash 复制代码
#由于repo中默认只开启stable仓库,故这里安装的是最新稳定版
yum install docker-ce docker-ce-cli containerd.io
  • 启动和开机启动
bash 复制代码
systemctl start docker
systemctl enable docker
  • 验证安装是否成功

    docker version

安装 Docker Compose

以下为 Docker Compose独立安装方式,其它方式可参考官方文档

  • 独立安装 Compose
bash 复制代码
curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
  • 命令执行失败
bash 复制代码
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  • 设置文件或文件夹权限
bash 复制代码
chmod +x /usr/local/bin/docker-compose
  • 校验是否安装成功

    docker-compose version

安装Jenkins

Jenkins中文官网:www.jenkins.io/zh/

使用 Docker Compose 部署

  1. 在系统任意位置创建一个文件夹,此文档以 ~/opt/docker/jenkins 为例
bash 复制代码
mkdir -p ~/opt/docker/jenkins && cd ~/opt/docker/jenkins

创建一些必要的文件或文件夹,保持目录结构如下示例:

arduino 复制代码
mkdir -p ./{config,data,logs}
arduino 复制代码
.
├── docker
│   └── jenkins
│       ├── docker-compose.yml
│       ├── data
│       └── config
│       └── logs

这个仅为参照,大家可按照自己的喜好即可。

注意:后续操作中,jenkins 产生的所有数据都会保存在这个目录,请妥善保存。

  1. 创建 docker-compose.yaml
yaml 复制代码
version: '3'
services: # 集合                                
  docker_jenkins:
    user: root # 为了避免一些权限问题 在这我使用了root
    privileged: true
    restart: always # 重启方式
    image: jenkins/jenkins:lts # 指定服务所使用的镜像 在这里我选择了 LTS (长期支持)
    container_name: jenkins # 容器名称
    ports: # 对外暴露的端口定义
      - 8082:8080 # 访问Jenkins服务端口
      - 50000:50000
    environment:
      TZ: Asia/Shanghai
    volumes: # 卷挂载路径
      - ./data:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker # 这是为了我们可以在容器内使用docker命令
      - /usr/local/bin/docker-compose:/usr/local/bin/docker-compose

/usr/share/jenkins 包含了一些 Jenkins 的配置,比如:插件之类的,有需要也可以映射到宿主机中

  1. 启动服务

    docker-compose up -d

实时查看日志:

docker-compose logs -f
  1. 访问地址

安装完成后访问地址:http://{部署Jenkins所在服务IP}:8080

此处会有几分钟的等待时间

使用 Docker 部署

  1. 在系统任意位置创建一个文件夹,此文档以 ~/opt/docker/jenkins 为例
bash 复制代码
mkdir -p ~/opt/docker/jenkins && cd ~/opt/docker/jenkins

创建一些必要的文件或文件夹,保持目录结构如下示例:

arduino 复制代码
.
├── docker
│   └── jenkins
│       ├── data
│       └── config
│       └── logs
  1. 启动服务
bash 复制代码
docker run \
  -u root \
  --rm \
  -d \
  -p 8080:8080 \
  -p 50000:50000 \
  -v /opt/docker/jenkins/data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --name jenkins \
  jenkins/jenkins:lts

查看运行日志:

less 复制代码
docker ps // 查看containerId
docker logs [ID | NAME]

查看实时日志:

css 复制代码
docker logs -f [ID | NAME]

注意检查8080是否已经占用!如果占用修改端口

  1. 访问地址

安装完成后访问地址:http://{部署Jenkins所在服务IP}:8080

此处会有几分钟的等待时间

使用指南

初始化

详情见官网教程:www.jenkins.io

解锁 Jenkins

  • 方式一

进入Jenkins容器:docker exec -it {Jenkins容器名} bash

例如: docker exec -it jenkins bash

查看密码:cat /var/jenkins_home/secrets/initialAdminPassword

复制密码到输入框里面

  • 方式二

查看日志获取密码

css 复制代码
docker logs -f [ID|NAME]
或
docker-compose logs -f

正确输入密码后,按照推荐的指示引导操作,等到引导安装结束后进入Jenkins主页。

默认插件

无特别要求就选择推荐插件安装即可

创建管理员用户

重要配置

配置地址与邮箱

插件管理

安装 git paremeters

  • 搜索插件
  1. 进入 首页 -- 系统管理 -- 插件管理 -- 可选插件 界面

  2. 搜索 git paremeters 插件,点击安装即可

  • 配置插件
  1. 在项目常规项中勾选 This project is parameterized,并选择 Git Parameter

安装 nodejs

  • 搜索插件
  1. 进入 首页 -- 系统管理 -- 插件管理 -- 可选插件 界面

  2. 搜索 nodejs 插件,点击安装即可

  • 配置插件
  1. 进入 首页 -- 系统管理 -- 全局工具配置 界面
  2. 找到 NodeJS 配置栏

安装 Publish Over SSH

  • 搜索插件
  1. 进入 首页 -- 系统管理 -- 插件管理 -- 可选插件 界面

  2. 搜索 ssh 插件,点击安装即可

  • 配置插件
  1. 进入 首页 -- 系统管理 -- 全局工具配置 界面
  2. 找到 SSH Servers 配置栏

安装 Maven

  • 搜索插件
  1. 进入 首页 -- 系统管理 -- 插件管理 -- 可选插件 界面

  2. 搜索 Maven Integration 插件,点击安装即可

  • 配置插件
  1. 进入 首页 -- 系统管理 -- 全局工具配置 界面
  2. 找到 maven--maven 配置栏

安装中文语言

  • 搜索插件
  1. 进入 首页 -- 系统管理 -- 插件管理 -- 可选插件 界面

  2. 搜索 Locale 插件,点击安装即可

安装完成后,在地址栏路径后输入 /restart,将重启 Jenkins

  • 配置插件
  1. 进入 首页 -- 系统管理 -- 系统配置 界面
  2. 找到 Default language 配置栏,输入zh_CNzh_TW

若以上方式无法生效,可尝试搜索 Localization: Chinese (Simplified) 插件

最新版的 Jenkins 可能存在翻译不全或不生效情况

FAQ

安装完成却出现 Jenkins 实例已离线情况

原因是 jenkins 在下载插件之前会先检查网络连接,其会读取 default.json 文件中的网址,该文件位于 /var/jenkins_home/updates 下,connectionCheckUrl 默认是访问谷歌地址,如果没翻墙可能就会出错,所以将 connectionCheckUrl 的值改为www.baidu.com 即可,更改完重启服务。

当安装完成后访问地址出现 HTTP ERROR 503

出现该画面,很有可能是防火墙问题,比如:未开放当前访问的端口等

Jenkins初始化安装插件异常,无法进行下一步

  • 方式一

可尝试换一下网络或者检查是否开启代理之类的

  • 方式二

该方式是以 Jenkins 安装在宿主机中,至于 Docker 可参照该方式的处理流程

  1. 停止 Jenkins 服务
arduino 复制代码
sudo systemctl stop jenkins
  1. 修改 config.xml文件
arduino 复制代码
sudo vim /var/lib/jenkins/config.xml
xml 复制代码
Modify line 10 <useSecurity>true</useSecurity> to: <useSecurity>false</useSecurity> 

Delete lines <authorizationStrategy .../> and <securityRealm ...> to</securityRealm>

结尾

本期的内容就到这里,路过的小伙伴记得支持一下哦!

相关推荐
guoguoqiang.1 小时前
我与Linux的爱恋:了解信号量+共享内存+消息队列的应用
linux·运维·服务器
复园电子1 小时前
朝天椒USB服务器在汽车生产企业中的应用分析
运维·服务器·汽车
舌尖上的五香1 小时前
Vmware虚拟机Ubantu安装Docker、k8s、kuboard
docker·容器·kubernetes
Oracle_6662 小时前
《Linux 指令集:开启极客世界的钥匙_01》
linux·运维·前端
Tisfy2 小时前
Windows - 通过ssh打开带有图形界面的程序 - 一种通过计划任务的曲折实现方式
运维·windows·ssh
猴子技术宅3 小时前
wordpress禁止系统自带搜索功能增强被恶意搜索轰炸(google有效)
运维·网络·搜索引擎
2401_846535953 小时前
VMware 与 CentOS 安装指南
linux·运维·centos
爱编程的小庄3 小时前
Shell脚本基础:用Bash自动化任务
linux·运维·自动化·bash
心随_风动3 小时前
CentOS停服后的替代选择:openEuler、Rocky Linux及其他系统的未来展望
linux·运维·centos
昵称为空C4 小时前
局域网内dns服务器dnsmasq服务搭建
docker·dns