使用 Docker Compose 部署 Jenkins(LTS 版)持续集成环境

一、前言

Jenkins 是目前最流行的开源持续集成工具之一。本教程将手把手带你使用 Docker Compose 快速部署 Jenkins LTS(长期支持版本),同时保留数据持久化、Docker 命令转发等功能,适合用于生产或本地开发测试环境。


二、环境准备

确保你的 Linux 系统中已安装以下软件:

  • Docker(建议 20.x+)
  • Docker Compose(建议 2.x+)

检查版本:

bash 复制代码
docker -v
docker compose version

三、创建目录结构

bash 复制代码
mkdir -p ~/jenkins-docker
cd ~/jenkins-docker

# 创建用于数据持久化的目录
mkdir -p /home/jenkins

建议将 /home/jenkins 权限赋给非 root 用户,例如当前用户:

bash 复制代码
sudo chown -R 1000:1000 /home/jenkins

其中 1000:1000 是 Jenkins 容器中的默认运行用户 ID。


四、创建 docker-compose.yml

~/jenkins-docker 目录下创建 docker-compose.yml 文件:

yaml 复制代码
services:
  jenkins:
    image: jenkins/jenkins:lts  # 使用官方 LTS 版本
    container_name: jenkins
    user: "1000:1000"
    ports:
      - "8080:8080"     # Jenkins Web UI
      - "50000:50000"   # JNLP Agent 通信端口
    volumes:
      - /home/jenkins:/var/jenkins_home         # 持久化 Jenkins 数据
      - /var/run/docker.sock:/var/run/docker.sock  # 容器内访问宿主机 Docker
    restart: unless-stopped

五、启动 Jenkins

执行以下命令启动 Jenkins:

bash 复制代码
docker compose up -d

首次启动后,你可以访问 Jenkins Web UI:

复制代码
http://<你的IP>:8080

查看初始管理员密码:

bash 复制代码
cat /home/jenkins/secrets/initialAdminPassword

复制后粘贴进浏览器完成首次配置(安装插件等)。


六、常用命令

操作 命令
启动 Jenkins docker compose up -d
查看日志 docker compose logs -f
停止 Jenkins docker compose down
进入容器内部 docker exec -it jenkins bash

七、常见问题与建议

  1. 权限问题:

    如果 Jenkins 容器内出现权限错误,确保挂载目录 /home/jenkins 的属主为 1000:1000

  2. 容器内无法使用 docker 命令:

    因为 /var/run/docker.sock 被挂载到容器内,你可以安装 Docker CLI:

    bash 复制代码
    docker exec -it jenkins bash
    apt update && apt install docker.io -y
  3. 数据备份:

    定期备份 /home/jenkins 目录,以防数据丢失。


八、总结

通过本文你已经成功使用 Docker Compose 部署了 Jenkins LTS 环境。这种方式不仅便于管理,还可以轻松迁移与扩展。

如需进一步配合 GitLab、Maven、Nexus 或 Kubernetes 进行 CI/CD,可以在 Jenkins 安装相关插件并配置流水线。

相关推荐
分布式存储与RustFS1 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
玉&心1 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing1 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
guo_wen_qiang1 天前
上传本地镜像到harbor中
docker·容器·持续部署
羑悻的小杀马特1 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
BianHuanShiZhe1 天前
docker常见命令
docker
正经教主2 天前
【FDE系列】阶段2:Day 43:Docker Compose — 多容器一键编排
人工智能·docker·fde
忆~遂愿2 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器
不吃香菜kkk、2 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
Zhu7582 天前
docker环境,vLLM 部署 Qwen3.8-27B
docker·qwen·vllm