1. 完整配置
services:
jenkins:
image: jenkins/jenkins:lts-jdk21
container_name: jenkins
restart: always
user: root
ports:
- "8080:8080" # Jenkins web访问端口
- "50000:50000" # Agent节点通信端口
volumes:
# 数据持久化,升级镜像不丢配置、任务、插件
- ./jenkins-data:/var/jenkins_home
# 挂载宿主机docker,支持Jenkins内构建Docker镜像
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
environment:
TZ: Asia/Shanghai # 时区统一东八区
JAVA_OPTS: "-Xms1024m -Xmx2048m" # JVM内存调参
2. 部署步骤
① 创建目录存放配置
mkdir -p /opt/jenkins && cd /opt/jenkins
② 写入 docker-compose.yml
将上面 yaml 内容保存为 docker-compose.yml
③ 启动服务
bash
# 后台启动
docker compose up -d
# 查看日志,获取初始管理员密码
docker compose logs -f jenkins
初始密码文件路径(容器内):/var/jenkins_home/secrets/initialAdminPassword 宿主机读取密码命令:
cat ./jenkins-data/secrets/initialAdminPassword
3. 常用运维命令
# 重启jenkins
docker-compose restart jenkins
# 停止服务
docker-compose down
# 停止并更新镜像升级版本
docker-compose down
docker pull jenkins/jenkins:lts-jdk21
docker-compose up -d
# 查看运行状态
docker-compose ps
4. 关键说明
user: root:解决挂载 docker.sock 权限不足,支持容器内打包镜像- 内存参数:
-Xms1024m -Xmx2048m,服务器内存充足可上调至 4G - 时区
TZ: Asia/Shanghai,解决构建日志、任务时间差 8 小时问题 - 数据卷
./jenkins-data独立持久化,仅更换镜像升级,历史任务、插件、凭据全部保留