CentOS服务器部署Docker+Jenkins持续集成环境

一、准备工作

一台运行 CentOS 的服务器,确保有足够的磁盘空间、内存资源,并且网络连接稳定。建议使用 CentOS 7 或更高版本,本文以 CentOS 7 为例进行讲解。

拥有服务器的 root 权限,因为后续安装软件包、配置环境等操作需要较高权限。

二、安装 Docker

1. 更新 yum 包索引:

yum update -y

这一步确保我们能获取到最新的软件包信息。

2. 安装必要的依赖包:

yum install -y yum-utils device-mapper-persistent-data lvm2

这些依赖是 Docker 正常运行所必需的。

3. 添加 Docker 官方 yum 源:

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4. 安装 Docker CE(社区版):

yum install -y docker-ce docker-ce-cli containerd.io

安装过程根据服务器性能和网络状况,可能需要花费一些时间。

5. 启动 Docker 服务并设置开机自启:

systemctl start dockersystemctl enable docker

6. 验证 Docker 是否安装成功,运行:

docker --version

如果能显示出版本信息,说明 Docker 已成功安装在 CentOS 服务器上。

三、配置 Docker 镜像加速

由于 Docker 默认的镜像源在国内访问速度较慢,我们可以配置国内的镜像加速服务,比如使用阿里云镜像加速。

登录阿里云控制台,找到容器镜像服务,获取专属的镜像加速地址。

创建或编辑 /etc/docker/daemon.json 文件:

{  "registry-mirrors": \["你的阿里云镜像加速地址"]}

重启 Docker 服务使配置生效:

systemctl restart docker

四、安装 Jenkins

1. 下载 Jenkins 的 yum 源:

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

2. 导入 Jenkins 的 GPG 密钥:

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

3. 安装 Jenkins:

yum install -y jenkins

4. 启动 Jenkins 服务并设置开机自启:

systemctl start jenkinssystemctl enable jenkins

Jenkins 默认运行在 8080 端口,此时在浏览器中输入服务器 IP 地址:8080,就能访问到 Jenkins 初始页面。

五、配置 Jenkins

1. 首次访问 Jenkins 时,需要输入初始密码解锁。密码存放在服务器的 /var/lib/jenkins/secrets/initialAdminPassword 文件中,通过命令:

cat /var/lib/jenkins/secrets/initialAdminPassword

获取密码并粘贴到浏览器中。

2. 进入插件安装页面,可以选择安装推荐的插件,这些插件涵盖了常见的构建、测试等功能,方便快速搭建 CI 流程。等待插件安装完成。

3. 创建管理员账号,填写用户名、密码等信息,完成 Jenkins 的基本配置。

六、集成 Docker 与 Jenkins

在 Jenkins 中安装 Docker 插件:

登录 Jenkins 控制台,进入 “系统管理”->“插件管理”,在可选插件中搜索 “Docker” 并安装。

配置 Docker 连接:

在 “系统管理”->“系统设置” 中找到 “Docker” 部分,填写 Docker 服务器的 URL(一般为 unix:///var/run/docker.sock ),测试连接成功后保存。

至此,我们已经成功在 CentOS 服务器上部署了 Docker+Jenkins 持续集成环境。后续在 Jenkins 中创建项目任务,结合 Docker 的容器化优势,就能轻松实现代码的持续集成与快速部署,让软件开发流程更加高效、可靠。在实践过程中,不断根据项目特点优化配置,充分发挥这一强大组合的威力吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/70271.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络数据请求

1.GET和POST请求 1.1发送GET请求 1.2发送POST请求 1.3 在页面刚加载的时候请求数据 2.request请求的注意事项

【OpenCV实战】基于 OpenCV 的多尺度与模板匹配目标跟踪设计与实现

文章目录 基于 OpenCV 的模板匹配目标跟踪设计与实现1. 摘要2. 系统概述3. 系统原理3.1 模板匹配的基本原理3.2 多尺度匹配 4. 逻辑流程4.1 系统初始化4.2 主循环4.3 逻辑流程图 5. 关键代码解析5.1 鼠标回调函数5.2 多尺度模板匹配 6. 系统优势与不足6.1 优势6.2 不足 7. 总结…

数据结构与算法学习笔记----博弈论

# 数据结构与算法学习笔记----博弈论 author: 明月清了个风 first publish time: 2025.2.6 ps⭐️包含了博弈论中的两种问题Nim游戏和SG函数,一共四道例题,给出了具体公式的证明过程。 Acwing 891. Nim游戏 [原题链接](891. Nim游戏 - AcWing题库) 给…

deepseek本地部署

DeepSeek本地部署详细指南 DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,这里记录自己DeepSeek本地部署流程。 主机环境 cpu:amd 7500Fgpu:406…

【大数据技术】搭建完全分布式高可用大数据集群(Scala+Spark)

搭建完全分布式高可用大数据集群(Scala+Spark) scala-2.13.16.tgzspark-3.5.4-bin-without-hadoop.tgz注:请在阅读本篇文章前,将以上资源下载下来。 写在前面 本文主要介绍搭建完全分布式高可用集群Spark的详细步骤。 注意: 统一约定将软件安装包存放于虚拟机的/softwa…

AJAX 详细教程

一、引言 在当今的 Web 开发领域,用户对于网页交互性和响应速度的要求越来越高。传统的 Web 开发模式在面对复杂的用户交互需求时,逐渐显露出其局限性。AJAX(Asynchronous JavaScript and XML)技术的出现,为 Web 开发带来了革命性的变化。它允许网页在不重新加载整个页面的…

VUE 集成企微机器人通知

message-robot 便于线上异常问题及时发现处理,项目中集成企微机器人通知,及时接收问题并处理 企微机器人通知工具类 export class MessageRobotUtil {constructor() {}/*** 发送 markdown 消息* param robotKey 机器人 ID* param title 消息标题* param…

VMware下Linux和macOS安装VSCode一些总结

本文介绍VMware下Linux和macOS安装VSCode的一些内容,包括VSCode编译器显示中文以及安装.NET环境和Python环境。 VSCode下载地址:Download Visual Studio Code - Mac, Linux, Windows 一.Linux系统下 1.安装中文包 按 Ctrl Shift P 打开命令面板。输…

消防救援营区管理2024年度回顾与分析

2024年,消防救援营区管理领域在挑战与机遇并存的环境中取得了显著进展。站在产业和行业的角度,对这一年的回顾具有重要意义。 营区设施管理方面,基础设施建设与维护工作成效显著。 老旧营房的修缮确保了消防员居住环境的安全舒适,…

Hangfire.NET:.NET任务调度

引言:为何选择 Hangfire? 在开发.NET 应用程序时,我们常常会遇到这样的场景:应用程序需要定期发送报告,像财务报表,每日业务数据汇总报告等,这些报告需要定时生成并发送给相关人员;…

[250202] DocumentDB 开源发布:基于 PostgreSQL 的文档数据库新选择 | Jekyll 4.4.0 发布

目录 DocumentDB 开源发布:基于 PostgreSQL 的文档数据库新选择DocumentDB 的使命DocumentDB 的架构 Jekyll 4.4.0 版本发布🆕 新特性与改进 DocumentDB 开源发布:基于 PostgreSQL 的文档数据库新选择 微软近日宣布开源 DocumentDB&#xff…

代码随想录二刷|回溯2

回溯 组合问题 方法 组合 题干 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 思路 (1)定义全局变量数组,作为存放组合的数组和存放最终答案的数组 (2&…

Rust 变量特性:不可变、和常量的区别、 Shadowing

Rust 变量特性:不可变、和常量的区别、 Shadowing Rust 是一门以安全性和性能著称的系统编程语言,其变量系统设计独特且强大。本文将从三个角度介绍 Rust 变量的核心特性:可变性(Mutability)、变量与常量的区别&#…

文件 I/O 和序列化

文件I/O C#提供了多种方式来读写文件,主要通过System.IO命名空间中的类来实现,下方会列一些常用的类型: StreamReader/StreamWriter:用于以字符为单位读取或写入文本文件。 BinaryReader/BinaryWriter:用于以二进制格…

趣解单词,实现快速记忆

英文单词 love,是“爱”的意思: love v./n.爱;喜欢;热爱;爱情;心爱的人 那什么是爱呢?love,首字母为l,是一根绳子,ve-通f,love通life&#xff0…

PostgreSQL拼接字符串的几种方法简单示例例子解析

代码示例: 在PostgreSQL中,拼接字符串可以使用多种方法,以下是一些常用的方法和示例: 使用 || 操作符 这是最简单直接的字符串拼接方式。 SELECT Hello || || World AS ConcatenatedString;结果: ConcatenatedStrin…

Windows Docker笔记-简介摘录

Docker是一个开源的容器化平台,可以帮助开发人员将应用程序与其依赖项打包在一个独立的容器中,然后在任何安装的Docker的环境中快速、可靠地运行。 几个基本概念和优势: 1. 容器 容器是一个轻量级、独立的运行环境,包含了应用程…

4 [危机13小时追踪一场GitHub投毒事件]

事件概要 自北京时间 2024.12.4 晚间6点起, GitHub 上不断出现“幽灵仓库”,仓库中没有任何代码,只有诱导性的病毒文件。当天,他们成为了 GitHub 上 star 增速最快的仓库。超过 180 个虚假僵尸账户正在传播病毒,等待不…

Android学习19 -- 手搓App

1 前言 之前工作中,很多时候要搞一个简单的app去验证底层功能,Android studio又过于重型,之前用gradle,被版本匹配和下载外网包折腾的堪称噩梦。所以搞app都只有找应用的同事帮忙。一直想知道一些简单的app怎么能手搓一下&#x…

深度学习 Pytorch 神经网络的学习

本节将从梯度下降法向外拓展,介绍更常用的优化算法,实现神经网络的学习和迭代。在本节课结束将完整实现一个神经网络训练的全流程。 对于像神经网络这样的复杂模型,可能会有数百个 w w w的存在,同时如果我们使用的是像交叉熵这样…