首页主机资讯Debian下Jenkins如何进行容器化部署

Debian下Jenkins如何进行容器化部署

时间2025-12-05 12:43:03发布访客分类主机资讯浏览552
导读:在 Debian 上使用 Docker 容器化部署 Jenkins 一 准备环境 安装 Docker(Debian 常见方式) 方式 A(系统仓库):sudo apt update && sudo apt install...

在 Debian 上使用 Docker 容器化部署 Jenkins

一 准备环境

  • 安装 Docker(Debian 常见方式)
    • 方式 A(系统仓库):sudo apt update & & sudo apt install -y docker.io & & sudo systemctl start docker & & sudo systemctl enable docker
    • 方式 B(Docker 官方 CE):sudo apt-get update & & sudo apt-get install -y docker-ce docker-ce-cli containerd.io
  • 验证 Docker:sudo docker run --rm hello-world
  • 建议创建专用网络,便于后续与“Docker-in-Docker”通信:docker network create jenkins

二 快速启动 Jenkins 容器

  • 使用官方 LTS 镜像并持久化数据(推荐)
    • 启动命令:
      • docker run -d
        –name jenkins
        –network jenkins
        -p 8080:8080
        -p 50000:50000
        -v jenkins_data:/var/jenkins_home
        jenkins/jenkins:lts
  • 获取初始管理员密码:
    • docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
  • 访问:打开浏览器访问 http://< 服务器IP> :8080,完成解锁与初始化(安装推荐插件、创建管理员)

三 在容器内使用宿主机的 Docker(DinD 或 Socket 挂载)

  • 方案 A(推荐)Docker-in-Docker(DinD)
    • 启动 Docker 守护进程容器(作为“Docker 服务”):
      • docker run --name jenkins-docker --rm --detach
        –privileged --network jenkins --network-alias docker
        -e DOCKER_TLS_CERTDIR=/certs
        -v jenkins-docker-certs:/certs/client
        -p 2376:2376
        docker:dind --storage-driver overlay2
    • 启动 Jenkins 并连接到上面的 Docker 守护进程:
      • docker run --name jenkins-blueocean --restart=on-failure --detach
        –network jenkins
        -e DOCKER_HOST=tcp://docker:2376
        -e DOCKER_CERT_PATH=/certs/client -e DOCKER_TLS_VERIFY=1
        -p 8080:8080 -p 50000:50000
        -v jenkins-data:/var/jenkins_home
        -v jenkins-docker-certs:/certs/client:ro
        jenkins/jenkins:lts
  • 方案 B 挂载宿主机 Docker 套接字(简单但有安全边界考量)
    • 启动命令:
      • docker run -d
        –name jenkins
        -p 8080:8080 -p 50000:50000
        -v jenkins_data:/var/jenkins_home
        -v /var/run/docker.sock:/var/run/docker.sock
        jenkins/jenkins:lts
  • 说明:DinD 隔离性更好,适合生产;套接字挂载更轻量,便于在容器内直接操控宿主机 Docker

四 安全与运维要点

  • 防火墙放行:确保 8080(Web)与 50000(Agent)端口对外开放(如使用 ufw/iptables)
  • 权限最小化:
    • DinD 使用 –privileged 是 Docker 官方示例做法;生产可结合更细粒度权限或 Rootless Docker 方案
    • 避免以 root 运行 Jenkins 进程,可在容器内创建低权限用户并调整启动入口
  • 数据与备份:
    • 关键目录 /var/jenkins_home 已通过卷持久化;定期备份该卷或快照
    • 升级时保留卷,仅替换镜像标签,减少配置丢失风险
  • 时间与时区:挂载 /etc/localtime 或在容器内设置时区,避免构建日志时间偏差
  • 代理与网络:如存在企业代理,设置 http_proxy/https_proxy 环境变量,确保拉取插件与镜像正常

五 常见问题排查

  • 页面无法访问:
    • 检查容器状态:docker ps;查看日志:docker logs jenkins
    • 核对端口映射:-p 8080:8080 是否正确,云服务器安全组/本机防火墙是否放行
  • 权限问题导致无法构建/拉取镜像:
    • DinD 场景确认 DOCKER_HOST/tls 环境变量与证书挂载是否正确
    • 套接字挂载场景确认容器内用户对 /var/run/docker.sock 有访问权限
  • 初始化密码错误:
    • 使用 docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword 重新获取
  • 插件下载缓慢:
    • Manage Jenkins → Plugin Manager → Advanced 更换为国内镜像源,提升下载速度

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


若转载请注明出处: Debian下Jenkins如何进行容器化部署
本文地址: https://pptw.com/jishu/764624.html
Debian下Jenkins如何与Docker协同工作 Jenkins在Debian上如何配置通知机制

游客 回复需填写必要信息