云原生 DevOps 工具链从入门到实战(第二期)——Jenkins安装与基础配置——CICD核心引擎

云原生 DevOps 工具链从入门到实战(第二期)------Jenkins安装与基础配置------CI/CD核心引擎

更多云原生DevOps技能学习请戳这里:云原生 DevOps 工具链从入门到实战

我的主页:AOwhisky,这里有更多运维系统性知识整理和其他有趣内容,欢迎与我一起探讨学习~

📖 引言:给 DevOps 装上"发动机"

第一期我们完成了 GitLab 的部署,代码有了"家"。但代码仓库只是起点------开发者把代码推上去了,然后呢?谁来负责自动编译、自动测试、自动打包?谁来把构建好的程序部署到服务器上?

这些重复性的"体力活",如果全部靠人工完成,效率低、易出错、难追溯。我们需要一个自动化引擎------它能在代码提交的瞬间自动拉起构建流程,像生产线一样把"代码原材料"加工成"可运行的软件"。

这就是 Jenkins 的使命。

💡 白话理解:如果说 GitLab 是"原料仓库",那么 Jenkins 就是"自动化工厂"------你把代码提交到仓库,Jenkins 自动完成编译、测试、打包、部署,全程无需人工干预。

Jenkins 是目前 DevOps 工具链中使用最广泛的 CI/CD 自动化服务器。本期我们将完成 Jenkins 的安装、配置和初步验证,让这个"工厂"先运转起来。
--- Compiled and Authored by Whisky --- July 26 th, 2026

📑 本期目录

  1. Jenkins 概述
  2. 环境准备与前置依赖
  3. Docker 部署 Jenkins
  4. Jenkins 初始化配置
  5. 插件管理
  6. 全局工具配置(JDK / Maven)
  7. 构建任务入门
  8. 总结与知识点一览表

正文

一、Jenkins 概述

1.1 什么是 Jenkins

Jenkins 是一个开源的、基于 Java 的持续集成和持续交付(CI/CD)自动化服务器。它被广泛应用于软件开发流程中,用于自动化构建、测试和部署代码,从而提高开发效率、软件质量和发布速度。

💡 白话理解:Jenkins 就像一个"自动化的流水线工人"------你告诉它"当代码仓库有变化时,执行一系列任务(编译、测试、打包、部署)",它就会不折不扣地完成任务,还会把结果告诉你。

1.2 Jenkins 的核心能力
能力 说明 典型场景
持续集成 代码提交后自动触发构建和测试 每次 Push 后自动运行单元测试
持续交付 自动化部署到测试/预发布环境 每日构建自动部署到测试环境
持续部署 通过质量门禁后自动发布到生产 通过全部测试后自动上线
插件扩展 1800+ 插件支持各种工具集成 Git/Maven/Docker/K8s/SonarQube
分布式构建 多 Agent 并行执行任务 加速大规模构建
定时任务 按计划执行构建或任务 每日凌晨自动构建
1.3 Jenkins 的核心组件
text 复制代码
┌─────────────────────────────────────────────────────────┐
│                  Jenkins 架构                           │
├─────────────────────────────────────────────────────────┤
│                                                         │
│   ┌─────────────┐     ┌─────────────┐                  │
│   │  Jenkins    │────▶│   Web UI    │  用户交互界面     │
│   │   Master    │     │  (8080)     │                  │
│   │  (主节点)   │     └─────────────┘                  │
│   │             │                                      │
│   │  调度/管理  │     ┌─────────────┐                  │
│   │  分配任务   │────▶│  插件系统   │  1800+ 插件      │
│   └─────────────┘     └─────────────┘                  │
│          │                                              │
│          ▼                                              │
│   ┌─────────────┐                                      │
│   │   Agent     │  执行构建任务的计算节点               │
│   │  (执行器)   │  (本期不涉及,后续扩展)             │
│   └─────────────┘                                      │
│                                                         │
└─────────────────────────────────────────────────────────┘
组件 说明 本期状态
Master(主节点) 提供 Web UI,管理配置,调度构建作业 ✅ 本期部署
Agent(执行器) 实际执行构建任务的计算资源 后续章节
Plugin(插件) 扩展 Jenkins 功能的模块 ✅ 本期配置
Job/Pipeline 定义了构建任务的具体内容和步骤 ✅ 本期入门

二、环境准备与前置依赖

2.1 服务器环境

在开始部署 Jenkins 之前,需要确保服务器满足以下条件:

检查项 要求 验证命令
操作系统 CentOS 7.x / Ubuntu 20.04 cat /etc/redhat-release
内存 建议 ≥ 4GB free -h
磁盘 建议 ≥ 20GB df -h
Docker 已安装并运行 docker --version
网络 可访问外网(拉取镜像) ping google.com

⚠️ 注意:Jenkins 是 Java 应用,对内存有一定要求。生产环境建议至少 4GB 内存,测试环境 2GB 勉强可用。

2.2 关闭防火墙和 SELinux
bash 复制代码
# 关闭防火墙
systemctl disable firewalld.service --now

# 临时关闭 SELinux
setenforce 0

# 永久关闭 SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
2.3 Maven 部署

Jenkins 构建 Java 项目需要 Maven,我们先在宿主机上准备好 Maven。

bash 复制代码
# 解压 JDK 和 Maven(已有压缩包)
tar zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/
tar zxvf apache-maven-3.6.2-bin.tar.gz -C /usr/local/

# 重命名
cd /usr/local/
mv apache-maven-3.6.2/ maven
mv jdk1.8.0_171/ jdk

配置 Maven 阿里云镜像仓库:

bash 复制代码
vim /usr/local/maven/conf/settings.xml

找到 <mirrors> 标签(约 159 行),在注释符号 <!-- --> 外面添加:

xml 复制代码
<mirror>
    <id>aliyunmaven</id>
    <mirrorOf>central</mirrorOf>
    <name>阿里云公共仓库</name>
    <url>https://maven.aliyun.com/repository/public</url>
</mirror>

配置 Maven 支持 JDK 1.8:

找到 <profiles> 标签(约 253 行),添加:

xml 复制代码
<profile>
    <id>jdk8</id>
    <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
    </activation>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerversion>1.8</maven.compiler.compilerversion>
    </properties>
</profile>

找到 <activeProfiles> 标签(约 275 行),添加:

xml 复制代码
<activeProfiles>
    <activeProfile>jdk8</activeProfile>
</activeProfiles>
2.4 Docker 部署

Jenkins 本身以容器方式运行,但需要宿主机 Docker 环境支持容器内构建镜像。

安装 Docker:

bash 复制代码
# 卸载旧版本
sudo yum remove docker docker-common docker-selinux docker-engine

# 安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 设置华为云镜像源
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

# 安装 Docker
sudo yum makecache fast
sudo yum install docker-ce -y

# 设置开机自启
systemctl enable docker --now

配置镜像加速:

bash 复制代码
tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://mirror.ccs.tencentyun.com",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn"
    ]
}
EOF

# 重启 Docker
systemctl daemon-reload
systemctl restart docker
2.5 docker-compose 工具安装
bash 复制代码
# 下载 docker-compose(替换为实际版本)
curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 添加执行权限
chmod +x /usr/local/bin/docker-compose

# 验证
docker-compose --version

三、Docker 部署 Jenkins

3.1 拉取 Jenkins 镜像

我们选择一个稳定且适配 JDK 8 的版本:

bash 复制代码
docker pull jenkins/jenkins:2.346.3-lts-jdk8

💡 版本选择建议 :2.346.3-lts-jdk8 是长期支持版(LTS),基于 JDK 8,与我们的 Java 项目兼容性好。如果需要 JDK 11/17,可选用更新的版本。

3.2 创建资源目录
bash 复制代码
# 创建 Jenkins 数据目录
mkdir -p /usr/local/docker/jenkins_docker

# 进入目录
cd /usr/local/docker/jenkins_docker
3.3 编写 docker-compose.yml
yaml 复制代码
version: "3.1"

services:
  jenkins:
    image: jenkins/jenkins:2.346.3-lts-jdk8
    container_name: jenkins
    ports:
      - 8080:8080      # Jenkins Web 端口
      - 50000:50000    # Agent 通信端口
    volumes:
      - ./data/:/var/jenkins_home/   # 持久化 Jenkins 数据
3.4 启动 Jenkins
bash 复制代码
# 启动
docker-compose up -d

# 查看日志(获取初始密码)
docker logs -f jenkins

预期输出:

text 复制代码
2025-06-26 07:52:55.564+0000 [id=27] INFO jenkins.install.SetupWizard#init:
*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   # ← 这是初始密码(32位字符串)

*************************************************************
*************************************************************
*************************************************************

查看容器状态:

bash 复制代码
docker ps -a | grep jenkins

预期输出:

text 复制代码
CONTAINER ID   IMAGE                                      STATUS        PORTS
0eb81fc79a4a   jenkins/jenkins:2.346.3-lts-jdk8           Up 2 minutes  0.0.0.0:8080->8080/tcp
3.5 解决常见启动问题

问题 1:权限被拒绝(Permission denied)

text 复制代码
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied

解决方法:给 data 目录赋予写权限

bash 复制代码
chmod 777 /usr/local/docker/jenkins_docker/data/
docker-compose restart

问题 2:其他主机无法访问 Jenkins

原因:服务器未开启 IP 转发

解决方法:

bash 复制代码
vim /etc/sysctl.conf
# 在末尾添加
net.ipv4.ip_forward = 1

sysctl -p

四、Jenkins 初始化配置

4.1 访问 Jenkins Web 页面

在浏览器中输入:http://<服务器IP>:8080

text 复制代码
┌──────────────────────────────────────────────┐
│                    Jenkins                   │
│                                              │
│   Unlock Jenkins                             │
│                                              │
│   To ensure Jenkins is securely set up by    │
│   the administrator, a password has been     │
│   generated and written to the log.          │
│                                              │
│   ┌─────────────────────────────────────┐    │
│   │  Administrator password             │    │
│   │  [________________________________] │    │
│   └─────────────────────────────────────┘    │
│                                              │
│   [ Continue ]                               │
└──────────────────────────────────────────────┘
4.2 解锁 Jenkins

将 docker logs -f jenkins 中显示的初始密码(32位字符串)粘贴到输入框中,点击 Continue。

4.3 自定义 Jenkins 插件安装

Jenkins 提供两种插件安装方式:

方式 说明 推荐场景
安装推荐插件 自动安装常用插件集 初学者、快速体验
选择插件安装 手动挑选需要的插件 生产环境、定制化需求

本期我们选择"选择插件安装",只安装后续实战需要的核心插件:

插件名称 用途
Git 从 Git 仓库拉取代码
Git Parameter 支持在构建时选择 Git 分支/Tag
Publish Over SSH 将构建产物通过 SSH 发送到目标服务器
SonarQube Scanner 代码质量扫描(后续章节使用)
Blue Ocean 现代化的 Pipeline 可视化界面

跳过插件安装也可以------后续在"系统管理 → 插件管理"中随时安装。

4.4 创建管理员用户

插件安装完成后,进入管理员用户创建页面:

text 复制代码
┌──────────────────────────────────────────────┐
│   Create First Admin User                   │
│                                              │
│   Username:   [________________]            │
│   Password:   [________________]            │
│   Full name:  [________________]            │
│   Email:      [________________]            │
│                                              │
│            [ Save and Continue ]             │
└──────────────────────────────────────────────┘

填写建议:

字段 建议值 说明
Username admin 简洁易记
Password 设置强密码 生产环境建议 8 位以上含特殊字符
Full name Administrator 显示名称
Email 真实邮箱 用于接收通知
4.5 实例配置

Jenkins URL 保持默认(http://<IP>:8080),点击 Save and Finish → Start using Jenkins。

text 复制代码
✅ Jenkins is ready!

💡 生产环境建议 :如果 Jenkins 配置了域名(如 https://jenkins.company.com),此处应填写域名地址,避免构建时 URL 指向错误。

五、插件管理

5.1 查看已安装插件

进入 系统管理 → 插件管理 → 已安装,可以看到当前已安装的插件列表。

5.2 安装新插件

方式一:通过 Web 界面安装

  1. 进入 系统管理 → 插件管理 → 可选插件
  2. 搜索需要的插件名称
  3. 勾选插件后点击 Install without restart(安装后不重启)

方式二:上传插件(离线安装)

当 Jenkins 服务器无法访问外网时,可以通过上传 .hpi 文件安装:

  1. 进入 系统管理 → 插件管理 → 高级 → 上传插件
  2. 选择 .hpi 文件 → 点击 上传
5.3 更换国内镜像源(加速插件下载)

如果插件下载速度慢,可以更换为国内镜像源:

bash 复制代码
# 进入 Jenkins 数据目录
cd /usr/local/docker/jenkins_docker/data/

# 备份原配置
mv hudson.model.UpdateCenter.xml hudson.model.UpdateCenter.xml.bk

# 复制一份用于修改
cp -p hudson.model.UpdateCenter.xml.bk hudson.model.UpdateCenter.xml

# 修改为清华源
vim hudson.model.UpdateCenter.xml

将内容替换为:

xml 复制代码
<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
</sites>

重启 Jenkins 使配置生效:

bash 复制代码
docker-compose restart

六、全局工具配置

Jenkins 需要知道 JDK 和 Maven 的位置,才能执行构建任务。

6.1 将 JDK 和 Maven 复制到 Jenkins 工作目录
bash 复制代码
# 复制 JDK 和 Maven 到 Jenkins 数据目录
cp -r /usr/local/jdk /usr/local/docker/jenkins_docker/data/
cp -r /usr/local/maven /usr/local/docker/jenkins_docker/data/

💡 路径说明 :/var/jenkins_home/ 是 Jenkins 容器内的工作目录,对应宿主机的 /usr/local/docker/jenkins_docker/data/。

6.2 配置 JDK

进入 系统管理 → 全局工具配置:

text 复制代码
┌─────────────────────────────────────────────────────────────────┐
│  全局工具配置                                                  │
├─────────────────────────────────────────────────────────────────┤
│  JDK                                                            │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  JDK installations                                      │   │
│  │  [+]  Add JDK                                           │   │
│  │                                                         │   │
│  │  Name:        [jdk8              ]                      │   │
│  │  JAVA_HOME:   [/var/jenkins_home/jdk  ]                 │   │
│  │  ☑ Install automatically (取消勾选)                    │   │
│  └─────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘

关键配置:

字段 值 说明
Name jdk8 自定义名称,后续构建时引用
JAVA_HOME /var/jenkins_home/jdk Jenkins 容器内的 JDK 路径
Install automatically ❌ 取消勾选 我们手动配置路径
6.3 配置 Maven

在同一个页面向下滚动到 Maven 部分:

text 复制代码
┌─────────────────────────────────────────────────────────────────┐
│  Maven                                                          │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  Maven installations                                     │   │
│  │  [+]  Add Maven                                          │   │
│  │                                                         │   │
│  │  Name:        [maven3.6            ]                    │   │
│  │  MAVEN_HOME:  [/var/jenkins_home/maven]                 │   │
│  │  ☑ Install automatically (取消勾选)                    │   │
│  └─────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘

关键配置:

字段 值 说明
Name maven3.6 自定义名称
MAVEN_HOME /var/jenkins_home/maven Jenkins 容器内的 Maven 路径
Install automatically ❌ 取消勾选 手动配置
6.4 保存配置

点击页面底部的 应用 → 保存。

七、配置 SSH 目标服务器

为了将构建产物(如 JAR 包)发送到目标服务器,需要配置 SSH 连接。

7.1 安装 Publish Over SSH 插件

如果尚未安装,进入 系统管理 → 插件管理 → 可选插件 ,搜索 Publish Over SSH 并安装。

7.2 配置 SSH 服务器

进入 系统管理 → 系统配置 ,找到 Publish over SSH 部分:

text 复制代码
┌─────────────────────────────────────────────────────────────────┐
│  Publish over SSH                                              │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  SSH Servers                                            │   │
│  │  [+]  Add                                               │   │
│  │                                                         │   │
│  │  Name:           [test               ]                  │   │
│  │  Hostname:       [192.168.100.155    ]                  │   │
│  │  Username:       [root               ]                  │   │
│  │  Remote Directory:[/usr/local/test   ]                  │   │
│  │  Password / Key:  [________________]                    │   │
│  │                                                         │   │
│  │  [   Test Configuration   ]                             │   │
│  └─────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘

关键配置:

字段 值 说明
Name test 配置名称,后续构建时选择
Hostname 192.168.100.155 目标服务器 IP
Username root 目标服务器登录用户名
Remote Directory /usr/local/test 文件发送到的远程目录
Password 目标服务器的 root 密码 与 Hostname 对应的密码

⚠️ 注意 :如果目标服务器没有 /usr/local/test 目录,需要先手动创建:

bash 复制代码
# 在目标服务器上执行
mkdir -p /usr/local/test

点击 Test Configuration ,如果显示 Success,说明 SSH 连接配置成功。

7.3 保存配置

点击页面底部的 应用 → 保存。

八、构建任务入门

为了验证 Jenkins 配置是否正确,我们创建一个简单的构建任务。

8.1 创建任务
  1. 点击 Jenkins 首页的 新建任务(New Item)
  2. 输入任务名称:mytest
  3. 选择 构建一个自由风格的软件项目(Freestyle project)
  4. 点击 OK
8.2 配置源码管理
text 复制代码
┌─────────────────────────────────────────────────────────────────┐
│  源码管理                                                       │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  ● Git                                                  │   │
│  │  Repository URL:  http://192.168.100.153:82/chen_group/web_demo.git │   │
│  │  Credentials:     [chen / ****]                         │   │
│  │  Branches to build: [*/master]                          │   │
│  └─────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘

步骤说明:

  1. 选择 Git
  2. 在 Repository URL 中填写 GitLab 项目地址
  3. 点击 Credentials 右侧的 Add,添加 GitLab 认证凭据
  4. 填写 GitLab 用户名和密码
  5. 确认凭据添加成功后,选择该凭据
  6. Branch 保持 */master 或 */main
8.3 配置构建步骤

点击 添加构建步骤 → 调用顶层 Maven 目标:

text 复制代码
┌─────────────────────────────────────────────────────────────────┐
│  构建                                                           │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  Maven Version:  [maven3.6              ]               │   │
│  │  Goals:          [clean package -DskipTests]            │   │
│  └─────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘
参数 含义
clean 清除之前构建生成的 target 目录
package 编译并打包成 JAR/WAR 文件
-DskipTests 跳过单元测试执行(加快构建速度)
8.4 第一次构建

点击 保存 → 立即构建。

查看构建日志:

点击构建记录(如 #1)→ Console Output,可以看到构建过程的完整日志。

成功标志:

text 复制代码
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.296 s
[INFO] Finished at: 2025-06-26T06:09:33Z
[INFO] ------------------------------------------------------------------------
8.5 验证构建产物

进入 Jenkins 容器,查看生成的 JAR 包:

bash 复制代码
# 进入容器
docker exec -it jenkins bash

# 进入工作空间
cd /var/jenkins_home/workspace/mytest/target/

# 查看 JAR 包
ls -la *.jar

预期输出:

text 复制代码
-rw-r--r-- 1 jenkins jenkins 15M Jun 26 06:09 demo-0.0.1-SNAPSHOT.jar

📝 总结与知识点一览表

本期核心知识点

类别 知识点 核心内容
Jenkins 概述 CI/CD 自动化服务器 持续集成、持续交付、插件扩展
部署方式 Docker + docker-compose 容器化部署,数据持久化
初始化配置 解锁密码、插件安装、管理员创建 首次启动的关键步骤
插件管理 安装 Git / Git Parameter / Publish Over SSH 核心插件安装
全局工具 JDK + Maven 配置 构建 Java 项目的基础
SSH 配置 Publish Over SSH 构建产物远程发送
构建任务 Freestyle 项目 源码拉取 + Maven 构建

常用 Jenkins 命令速查

操作 命令
查看初始密码 docker logs -f jenkins
进入容器 docker exec -it jenkins bash
重启 Jenkins docker-compose restart
查看日志 docker-compose logs -f jenkins
停止服务 docker-compose down
启动服务 docker-compose up -d

常见错误排查指南

问题现象 可能原因 解决方法
Permission denied 启动失败 data 目录权限不足 chmod 777 data/
插件下载慢 连接国外源 更换清华镜像源
git clone 失败(403) 未配置认证凭据 添加 GitLab 用户名/密码
mvn: command not found Maven 未配置 检查全局工具配置中的 MAVEN_HOME
构建时 JDK 找不到 JAVA_HOME 配置错误 检查全局工具配置中的路径
Test Configuration 失败 SSH 连接信息错误 检查 IP/用户名/密码/端口

学习/生产最佳实践

  1. 数据持久化 :使用 volumes 挂载 data/ 目录,保证 Jenkins 配置在容器重启后不丢失。
  2. 定期备份 :备份 /usr/local/docker/jenkins_docker/data/ 目录,包含所有任务配置和插件。
  3. 使用 LTS 版本:生产环境应使用长期支持版(LTS),而非每周发布的测试版。
  4. 资源规划:Jenkins 构建消耗 CPU 和内存,确保服务器有足够的资源,尤其是有多个并发构建时。
  5. 安全配置:创建管理员用户后,立即禁用初始密码登录;建议配置 HTTPS 访问。

🔜 下期预告

本期我们完成了 Jenkins 的安装与基础配置------从 Docker 部署、初始化设置、插件安装、全局工具配置,到 SSH 目标服务器配置和第一个构建任务。

Jenkins 这个"自动化工厂"已经建好了,但目前它还是"空转"状态------虽然能构建,但还没有和代码仓库、开发环境、目标服务器形成完整的流水线。

下一期(第三期) ,我们将进入 开发环境搭建与 GitLab-Jenkins 集成------在 Windows 上配置完整的 Java 开发环境(JDK + Maven + IDEA + Git),将本地代码推送到 GitLab,并在 Jenkins 中完成从代码拉取到构建的自动化流程,实现"代码提交 → 自动构建 → 产物输出"的初步闭环。敬请期待!


本期(Jenkins 安装与基础配置)到此结束。 如果在操作过程中遇到任何问题,欢迎在评论区留言讨论!
--- Compiled and Authored by Whisky --- July 26 th, 2026

相关推荐
未济4 天前
linux 配置环境变量
linux
傲世仙尊4 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS4 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
_艾伦 耶格尔.4 天前
进程间通信
linux
AI职业加油站4 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
codeejun4 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
Liuqy-054 天前
Linux IO编程——静态库、动态库
linux
此冬歌咏4 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
彧azz4 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试