Docker之Jenkins部署:持续集成自动化平台

核心部署命令

docker run -d \
  -p 8888:8080 \
  -p 50000:50000 \
  --privileged=true \
  -v /home/jenkins/jenkins_home:/var/jenkins_home \
  -v /home/jenkins/data:/data \
  -v /etc/localtime:/etc/localtime \
  -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
  --restart=always \
  --name=jenkins \
  -u root \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v $(which docker):/usr/bin/docker \
  jenkins/jenkins

参数详解

端口映射

参数说明
-p 8888:8080Web访问端口
-p 50000:50000Agent通信端口

数据卷挂载

挂载路径作用
/home/jenkins/jenkins_home持久化Jenkins配置和作业数据
/home/jenkins/data自定义数据存储目录
/etc/localtime同步宿主机时间
/var/run/docker.sock允许容器内使用Docker(DinD方案)
$(which docker):/usr/bin/docker映射Docker二进制文件

环境配置

参数作用
--privileged=true获取宿主机root权限
-u root以root用户运行
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai设置时区为上海

初始化配置流程

  1. 首次访问

    # 获取初始管理员密码
    docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

    访问 http://服务器IP:8888 输入密码

  2. 插件安装

    • 推荐安装默认插件集
    • 必装插件:

      • Docker Pipeline
      • Blue Ocean
      • Git Parameter
  3. 配置Docker集成

    # 在Jenkins系统配置中
    Docker Host URI = unix:///var/run/docker.sock

生产环境建议

1. 备份策略

# 定期备份jenkins_home
tar -czvf jenkins_backup_$(date +%Y%m%d).tar.gz /home/jenkins/jenkins_home

2. 性能优化

# 限制资源使用
--memory=4g --cpus=2

常见问题解决

Q:容器内Docker命令不可用?

# 确保docker.sock和二进制文件映射正确
ls -l /var/run/docker.sock

Q:时区配置不生效?

# 检查时区文件映射
docker exec jenkins date

Q:插件安装失败?

# 更换清华镜像源
sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/jenkins_home/hudson.model.UpdateCenter.xml

版本升级方案

  1. 停止旧容器
  2. 备份数据卷
  3. 使用新镜像启动(保持相同数据卷路径)
  4. 访问 /manage/pluginManager/advanced 检查插件更新

此部署方式支持:

  • 完整的Docker-in-Docker支持
  • 持久化的配置存储
  • 开箱即用的CI/CD环境
  • 与宿主机Docker无缝集成
提示:建议定期清理/var/jenkins_home/jobs目录下的旧构建记录

添加新评论