Docker部署Jenkins持续集成

为什么用 Docker 运行 Jenkins

传统安装 Jenkins 需要配置 JDK、管理依赖、迁移麻烦。
用 Docker 部署 Jenkins 持续集成环境,只需一条命令就能拉取镜像并启动容器,升级或迁移时也只需更换镜像,省心又干净。
无论你是在个人服务器还是云主机上,这个方法都通用。

环境准备与检查

在开始之前,你需要一台安装好 Docker 的 Linux 服务器(推荐 CentOS 7+ 或 Ubuntu 18.04+)。
用以下命令检查 Docker 是否就绪:

docker --version
docker info

如果未安装 Docker,先执行官方一键脚本:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl start docker
sudo systemctl enable docker

注意: 不要忘记将当前用户加入 docker 组,避免每次使用 sudo

sudo usermod -aG docker $USER
# 退出重新登录使组生效

拉取 Jenkins 镜像并启动容器

Jenkins 官方推荐使用 LTS 版本,稳定可靠。
执行以下命令:

docker pull jenkins/jenkins:lts-jdk17

拉取完成后,启动容器并映射端口(宿主机 8080 映射到容器 8080,50000 用于 Jenkins 代理通信):

docker run -d --name jenkins -p 8080:8080 -p 50000:50000 \
    -v jenkins_home:/var/jenkins_home \
    jenkins/jenkins:lts-jdk17
  • -d 后台运行,--name 指定容器名。
  • -v jenkins_home:/var/jenkins_home 创建数据卷持久化数据,容器删除后配置不丢失。

初始解锁与插件安装

容器启动后,访问 http://你的服务器IP:8080,Jenkins 要求输入初始管理员密码。
获取密码命令:

docker logs jenkins 2>&1 | grep -i password

或直接进入容器查看:

docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword

复制密码,粘贴到 Web 页面解锁。
接着选择安装建议插件(Recommended plugins),等待自动安装。
如果网络慢,可以手动选择常用插件如 Git、Pipeline、Blue Ocean 等。

创建第一个持续集成任务

  1. 在 Jenkins 首页点击 新建任务 → 输入任务名称,选择 流水线(Pipeline)
  2. 在流水线定义中,选择 Pipeline scriptPipeline script from SCM(推荐从代码仓库读取 Jenkinsfile)。
  3. 如果使用 SCM,填写 Git 仓库地址和凭据(如 GitHub 的 SSH Key 或用户名密码)。
  4. 保存后点击 立即构建,查看控制台输出。

以下是一个简单的 Jenkinsfile 示例(放在项目根目录):

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building...'
                sh 'echo Hello, Docker + Jenkins!'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
                // 这里可以添加测试命令
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
                // 部署到服务器或容器
            }
        }
    }
    post {
        always {
            echo 'Pipeline finished.'
        }
    }
}

常见问题与避坑指南

Q:
容器启动后无法访问 8080 端口?
检查云平台安全组是否放行 8080 端口,
以及服务器防火墙(sudo ufw statusfirewall-cmd --list-ports)。

Q: Jenkins 重启后数据丢失? 请确认启动时使用了 -v jenkins_home:/var/jenkins_home 数据卷,否则数据写在容器内会被清除。

Q: 容器内安装插件超时? 可以更换 Jenkins 插件加速源,或者使用 Docker 网络代理。
对于国内用户,建议在 系统管理→插件管理→高级 中替换 URL 为国内镜像。

避坑: 不要在容器内修改 /var/jenkins_home 的权限!
如果因权限问题启动失败,可以在宿主机上设置目录权限:sudo chown -R 1000:1000 /var/lib/docker/volumes/jenkins_home/_data(1000 是 Jenkins 容器内用户的 UID)。

验证 CI/CD 流程

构建成功后,查看 Blue Ocean 界面(安装 Blue Ocean 插件后访问 http://IP:8080/blue)会更直观。
可以修改 Git 仓库中的代码并推送,触发自动构建,检查流水线是否按 stages 顺序执行。
当所有 stage 都显示绿色,说明你的 Docker 部署 Jenkins 持续集成环境已能正常使用。

如果你正在搭建持续集成体系,建议先按本文步骤完整执行,再根据自己的项目调整流水线逻辑。
遇到异常时优先检查 Docker 日志和 Jenkins 系统日志,结合常见问题解决。

分享到:
上一篇
Linux日志清理磁盘爆满:从排查到根治的完整步骤
下一篇
手把手配置服务器DDoS攻击防护:从云盾到宝塔联动
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意