首页主机资讯Jenkins在Debian上的容器化部署如何操作

Jenkins在Debian上的容器化部署如何操作

时间2025-12-15 15:13:04发布访客分类主机资讯浏览1218
导读:在 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:50000Jenkins 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 组,或在启动容器时以合适用户运行并设置卷权限。
  • 构建代理与流水线:

    • 如需动态构建环境,可在 Jenkins 中配置 Docker Agent(在容器中运行构建任务),或使用 Kubernetes 插件扩展多节点弹性构建能力(适合大规模场景)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Jenkins在Debian上的容器化部署如何操作
本文地址: https://pptw.com/jishu/771706.html
Ubuntu AppImage如何更新和卸载 Ubuntu Jellyfin如何使用字幕

游客 回复需填写必要信息