Jenkins在Debian上的容器化部署如何操作
导读:在 Debian 上用 Docker 部署 Jenkins 的完整步骤 一 准备环境 更新系统并安装 Docker(Debian 常用软件源中的 docker.io 包即可): 执行:sudo apt update &&...
在 Debian 上用 Docker 部署 Jenkins 的完整步骤
一 准备环境
- 更新系统并安装 Docker(Debian 常用软件源中的 docker.io 包即可):
- 执行:
sudo apt update & & sudo apt install -y docker.io - 启动并设置开机自启:
sudo systemctl start docker & & sudo systemctl enable docker - 可选验证:
sudo docker run --rm hello-world
- 执行:
- 建议以非 root 用户管理 Docker(可选):将当前用户加入 docker 组并重新登录:
- 执行:
sudo usermod -aG docker $USER后退出重登终端。
- 执行:
二 启动 Jenkins 容器
-
使用官方 LTS 镜像并持久化数据(推荐命名卷方式):
- 执行:
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts - 说明:
- -p 8080:8080 为 Web 访问端口;-p 50000:50000 为 Jenkins Agent 通信端口。
- -v jenkins_home:/var/jenkins_home 使用 Docker 命名卷持久化配置与作业数据。
- 执行:
-
如需在容器内构建/操作宿主机 Docker(Docker-in-Docker 思路之一),挂载 Docker 套接字:
- 执行:
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts - 安全提示:挂载 /var/run/docker.sock 会赋予容器内较高权限,生产环境请结合权限最小化与镜像安全策略谨慎使用。
- 执行:
-
如需使用主机目录挂载(便于直接备份与查看),先创建目录并授权,再启动:
- 执行:
sudo mkdir -p /var/jenkins_node & & sudo chmod 777 /var/jenkins_node - 启动:
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_node:/var/jenkins_home jenkins/jenkins:lts
- 执行:
三 初始化与安全配置
-
访问 http://< 服务器IP> :8080 进入解锁页面,获取初始管理员密码:
- 方式一(命名卷):
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword - 方式二(宿主机目录):
sudo cat /var/jenkins_node/secrets/initialAdminPassword - 方式三(容器日志):
docker logs jenkins | grep -A 2 "initialAdminPassword"
- 方式一(命名卷):
-
完成解锁后,选择安装推荐插件或自定义插件,并设置管理员账户。为提升安全性,建议:
- 仅开放必要端口(如 8080/50000),并在防火墙/云安全组限制来源 IP。
- 避免以 root 运行容器,必要时在运行时指定非 root 用户(需确保挂载目录权限匹配)。
- 谨慎挂载 /var/run/docker.sock,必要时采用代理/远程构建等替代方案。
四 常用管理与扩展
-
备份与迁移:直接备份宿主机上的 /var/jenkins_node(目录挂载)或备份命名卷
jenkins_home(如docker volume create jenkins_home_bak后用临时容器拷贝数据),在新环境以相同方式挂载恢复。 -
在容器内使用宿主机的 Docker(可选):
- 挂载 /var/run/docker.sock 后,容器内可直接执行
docker命令构建/推送镜像;若希望“容器内用户”有权限操作,可在宿主机将该用户加入 docker 组,或在启动容器时以合适用户运行并设置卷权限。
- 挂载 /var/run/docker.sock 后,容器内可直接执行
-
构建代理与流水线:
- 如需动态构建环境,可在 Jenkins 中配置 Docker Agent(在容器中运行构建任务),或使用 Kubernetes 插件扩展多节点弹性构建能力(适合大规模场景)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Jenkins在Debian上的容器化部署如何操作
本文地址: https://pptw.com/jishu/771706.html
