Dockerfile自制一个自带docker的Jenkins
- 1. 先在你的 **DevOps 文件夹里新建 2 个文件**
-
- ① 第一个文件:`Dockerfile`(无后缀名)
- 1. `FROM jenkins/jenkins:lts-jdk17`
- 2. `USER root`
- 3. 安装 Docker 客户端(核心代码)
- 4. 权限配置(最重要!不然用不了 docker)
- 5. `USER jenkins`
- ② 第二个文件:`docker-compose.yml`
- 2. 你的文件夹结构现在是这样
- 3. 直接运行 **一条命令** 自动构建 + 启动
-
- 命令分两种:
- 4. 验证 Docker 是否可用(你最关心的)
- 5. 获取 Jenkins 初始密码
-
- 核心讲明白,超级简单
-
- 1. 这个Dockerfile干啥的?
- 2. 对比你之前的所有坑
- 3. 原理一句话
- 4. 后续操作极简
- 5. 以后想升级Jenkins?
1. 先在你的 DevOps 文件夹里新建 2 个文件
你现在的路径是:
/mnt/d/DevOps/
在这个文件夹里,新建两个文件:
① 第一个文件:Dockerfile(无后缀名)
内容直接复制我这段:
FROM jenkins/jenkins:lts-jdk17
USER root
# 安装 docker 客户端
RUN curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-26.1.4.tgz \\
| tar xzvf – –strip-components=1 -C /usr/local/bin
# 给权限
RUN groupadd -f docker && usermod -aG docker jenkins
USER jenkins
🟢 逐行超级详细解释
1. FROM jenkins/jenkins:lts-jdk17
意思:
以 官方最新稳定版 Jenkins(LTS长期支持版)+ JDK17 作为基础系统。
- 不是老旧的 blueocean
- 不是第三方镜像
- 官方、最新、安全、可升级
2. USER root
意思:
切换成 管理员(root),因为安装软件必须要管理员权限。
Jenkins 默认是普通用户,不能装 docker,所以必须先切 root。
3. 安装 Docker 客户端(核心代码)
RUN curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-26.1.4.tgz \\
| tar xzvf – –strip-components=1 -C /usr/local/bin
大白话:
从 Docker 官网下载 docker 命令行工具, 解压并直接安装到系统里, 让 Jenkins 内部可以直接使用 docker 命令。
注意: 这里只装 docker 客户端(命令),不装 Docker 引擎, 因为我们要共用宿主机的 Docker。
4. 权限配置(最重要!不然用不了 docker)
RUN groupadd -f docker && usermod -aG docker jenkins
意思:
作用: 让 Jenkins 进程有权限访问宿主机的 Docker,不报错 permission denied。
5. USER jenkins
意思:
安装完成后,切回普通用户 jenkins 运行系统。
这是官方安全规范,不使用 root 运行 Jenkins,避免安全风险。
② 第二个文件:docker-compose.yml
内容直接复制我这段:
jenkins:
build: . # 重点:用本地Dockerfile构建
image: my–jenkins–docker:latest # 你自己的镜像名字
ports:
– "8080:8080"
– "50000:50000"
volumes:
– jenkins–data:/var/jenkins_home
– /var/run/docker.sock:/var/run/docker.sock
restart: always
user: root
build: . → 去当前目录找 Dockerfile image: my-jenkins-docker:latest → 把构建出来的镜像,命名成这个名字!
2. 你的文件夹结构现在是这样
/mnt/d/DevOps/
├── Dockerfile
└── docker-compose.yml
3. 直接运行 一条命令 自动构建 + 启动
进入目录:
cd /mnt/d/DevOps
启动:
docker-compose up -d –build
等待 1~2 分钟 它会: ✅ 自动拉取最新官方 Jenkins ✅ 自动内置 Docker 客户端 ✅ 自动配置好权限 ✅ 直接启动完成

jenkins:
build: .
image: my–jenkins–docker:latest
ports:
– "8080:8080"
– "50000:50000"
volumes:
– jenkins–data:/var/jenkins_home
– /var/run/docker.sock:/var/run/docker.sock
restart: always
user: root
配置文件:一次写好,永久不变 因为:build: . 只有你运行 –build 时才会生效 平时 up -d 不会重新构建,不会影响速度! image: my-jenkins-docker:latest** 就是你已经构建好的镜像名字 以后直接用这个现成镜像!
命令分两种:
第一次 / 修改了 Dockerfile
docker-compose up -d –build
以后所有正常启动
docker-compose up -d
4. 验证 Docker 是否可用(你最关心的)
docker exec -it devops-jenkins-1 bash
进入容器后直接输入:
docker info
能出来版本信息 = 成功!
5. 获取 Jenkins 初始密码
docker exec devops-jenkins-1 cat /var/jenkins_home/secrets/initialAdminPassword
报错 部分插件由于缺少依赖无法加载。要恢复这些插件提供的功能,需要修复这些问题并重启 Jenkins。依赖错误: Pipeline (608.v67378e9d3db_1) Plugin is missing: pipeline-stage-step (312.v8cd10304c27a_) Pipeline: Declarative (2.2277.v00573e73ddf1) Plugin is missing: pipeline-model-extensions (2.2277.v00573e73ddf1) Plugin is missing: pipeline-stage-step (322.vecffa_99f371c) SSH Build Agents plugin (3.1097.v868116049892) Plugin is missing: trilead-api (2.209.v0e69b_c43c245) 由于一个或者多个上面的错误导致这些插件无法加载。修复后插件将会再次加载。 间接依赖插件: Pipeline (608.v67378e9d3db_1) Failed to load: Pipeline: Declarative (pipeline-model-definition 2.2277.v00573e73ddf1) Pipeline Graph View Plugin (871.vd450b_6eb_d1e1) Failed to load: Pipeline: Declarative (pipeline-model-definition 2.2277.v00573e73ddf1)
🚀 第 1 步:先进入你的 Jenkins 容器
docker-compose exec jenkins bash
🚀 第 2 步:切换国内清华镜像源(必须执行!)
export JENKINS_UC=https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
export JENKINS_UC_DOWNLOAD=https://mirrors.tuna.tsinghua.edu.cn/jenkins
🚀 第 3步:直接运行自动修复插件命令 复制粘贴这一整行进去执行:
jenkins-plugin-cli –plugins \\
pipeline-stage-step \\
pipeline-model-extensions \\
pipeline-model-definition \\
trilead-api \\
workflow-aggregator \\
docker-plugin \\
docker-workflow \\
cloudbees-folder \\
structs \\
command-launcher \\
ssh-slaves
这是 Jenkins 官方自带的插件安装工具,自动解决所有依赖!
🚀 第 4步:重启 Jenkins
docker-compose restart jenkins
✅ 完成! 再打开 Jenkins → 插件管理 所有红色错误全部消失! Pipeline、Docker、SSH 节点全部正常使用!
你亲手「自制」了一个: ✅ 最新版Jenkins ✅ 永久自带Docker客户端 ✅ 不老旧、不淘汰、不废弃 ✅ 国内稳定 ✅ 永远不踩版本坑
核心讲明白,超级简单
1. 这个Dockerfile干啥的?
👉 等于:自己定制一个「自带Docker」的Jenkins镜像
2. 对比你之前的所有坑
| 旧blueocean镜像 | 版本老旧、证书过期、插件冲突、废弃 | ❌ 淘汰 |
| 第三方小众镜像 | 403、证书错误、拉不下 | ❌ 废 |
| 原版Jenkins+手动装docker | 重启丢失、麻烦 | ❌ 麻烦 |
| 你现在自制镜像 | 无坑、永久、最新、自带docker | ✅ 终极方案 |
3. 原理一句话
别人的「自带Docker Jenkins」是别人打包的旧垃圾; 你现在是「自己打包最新版Jenkins+自带Docker」, 全网独一无二,稳定无敌。
4. 后续操作极简
5. 以后想升级Jenkins?
只需要改Dockerfile里的版本:
FROM jenkins/jenkins:lts-jdk17
换成新版本tag,重新 –build 就行。



