type
status
date
slug
summary
tags
category
icon
password
Property
Mar 4, 2024 06:51 AM
目的
学习 Jenkins 的搭建
准备工作
- 机器:vmware 虚拟机安装的 centos 的最小版本教程
- 使用的 xshell 连接 vmware,方便熟悉教程
- yum 源阿里源
最终终端图

正式开始
docker
docker 介绍

docker 安装
你也可以使用阿里源进行安装
安装成功再
docker -v
查看
基本命令
配置阿里云源
拉取 Docker 镜像时,一般默认会去
Docker
官方源拉取镜像,为了优化速度我们更换为阿里云镜像仓库源进行镜像下载加速。在对应
/etc/docker/daemon.json
添加内容就是了

安装 Jenkins
Jenkins 是一款由 Java 编写的开源的持续集成工具。在与 Oracle 发生争执后,项目从 Hudson 项目复刻。 Jenkins 提供了软件开发的持续集成服务。维基百科
安装防火墙
关于:
- Systemd:Systemd 入门教程:命令篇
- firewalld:firewall 简单使用
- ip 的那个地方,我是使用的是的本地虚拟机,因此我配置的本地虚拟机的

必须配置,否则会之后的 docker 启动服务失败

docker in docker
简介
Docker 采用的是 C/S(即 Client/Server)架构。我们在执行
docker xxx
等命令时,其实是使用 Client 在和docker engine
在进行通信。我们在安装 Docker CE 时,会生成一个
systemd service
服务。这个服务启动时,就是 Docker Engine
服务。默认情况下,Docker 守护进程会生成一个socket(/var/run/docker.sock)
文件来进行本地进程通信,因此只能在本地使用 docker 客户端或者使用 Docker API 进行操作。*.sock 文件:sock 文件是 UNIX 域套接字,它可以通过文件系统(而非网络地址)进行寻址和访问。 因此,只要把宿主机的 Docker 套接字通过 Docker 数据卷挂载到容器内部,就能实现在容器内使用 Docker 命令(如下图)。

使用方式:
docker run ... -v /var/run/docker.sock:/var/run/docker.sock
创建 Dockerfile
在/usr/dockerdemo1 建立一个 Dockerfile
内容
构建镜像
文件创建后,执行
docker build -t local/jenkins .
(名字为:local/jenkins)
如果提示 Successfully tagged local/jenkins:latest 则构建成功。
此处为第二次构建,第二次构建就会非常快,大概流程如下。

创建镜像和容器
我们将 Jenkins 用户目录外挂到宿主机内,先新建一个
/home/jenkins
目录,并设置权限:接下来我们用镜像创建容器并启动:
创建成功

启动 Jenkins
设置防火墙
首先我们在防火墙添加 8080 和 50000 端口的放行,并重载防火墙
然后在
宿主机IP:8080
就可以看到界面了
设置源
设置源提高 Jenkins 插件下载速度。因为后面安装插件需要重启,因此这一步可以先操作,避免后面再重启。
初始化完成
初始化完成需要我们输入密码

我们执行命令

密码输入之后就是进入插件安装

设置源之后插件安装就很丝滑流畅

再就是设置管理员了,我这里使用的是:使用 admin 账户继续。

进入就是我们熟悉的界面了

小试牛刀
左侧新建 Item



输入代码
保存再触发立即构建就可以看到效果了。

可以在控制台看到对应的输出就大功告成了。

结语
至此,我们已经完整搭建了 Jenkins 环境,作为 CICD 不可少的一部分,也算是有了一个良好的开端。撒花!
- 作者:Kitety
- 链接:https://www.kitety.com/article/cicd-actual-combat-jenkins-construction
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章