Docker之Jenkins部署
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:8080 | Web访问端口 |
-p 50000:50000 | Agent通信端口 |
数据卷挂载
挂载路径 | 作用 |
---|---|
/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 | 设置时区为上海 |
初始化配置流程
首次访问:
# 获取初始管理员密码 docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
访问
http://服务器IP:8888
输入密码插件安装:
- 推荐安装默认插件集
必装插件:
- Docker Pipeline
- Blue Ocean
- Git Parameter
配置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
版本升级方案
- 停止旧容器
- 备份数据卷
- 使用新镜像启动(保持相同数据卷路径)
- 访问
/manage/pluginManager/advanced
检查插件更新
此部署方式支持:
- 完整的Docker-in-Docker支持
- 持久化的配置存储
- 开箱即用的CI/CD环境
- 与宿主机Docker无缝集成
提示:建议定期清理/var/jenkins_home/jobs
目录下的旧构建记录