温馨提示×

Jenkins在CentOS如何进行容器化部署

小樊
37
2025-12-27 12:50:34
栏目: 智能运维

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

一 环境准备与安装 Docker

  • 更新系统并安装依赖:sudo yum update -y && sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • 添加 Docker 官方仓库:sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 安装 Docker 引擎:sudo yum install -y docker-ce docker-ce-cli containerd.io
  • 启动并设置开机自启:sudo systemctl start docker && sudo systemctl enable docker
  • 验证安装:docker --version(应输出版本号)

二 部署 Jenkins 容器

  • 拉取镜像(推荐 LTS):docker pull jenkins/jenkins:lts
  • 运行容器(示例命令,含数据持久化与时区): docker run -d
    –name jenkins
    -p 8080:8080
    -p 50000:50000
    -v jenkins_data:/var/jenkins_home
    -v /etc/localtime:/etc/localtime
    jenkins/jenkins:lts 说明:
    • 端口 8080 为 Web 界面,50000 为 Agent 通信端口
    • 使用命名卷 jenkins_data 持久化配置与作业数据;也可改为绑定挂载如 -v /opt/jenkins_home:/var/jenkins_home
    • 如需自定义主机端口,可将 8080 改为如 10002:8080
  • 获取初始管理员密码:docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
  • 访问 Web:在浏览器打开 http://<服务器IP>:8080,输入上述密码,按向导安装推荐插件并创建管理员账户

三 使用 Docker Compose 管理

  • 创建持久化目录并设置权限(容器内 Jenkins 通常以 uid 1000 运行): sudo mkdir -p /opt/docker/jenkins_home sudo chown -R 1000:1000 /opt/docker/jenkins_home
  • 创建 docker-compose.yml(示例): version: ‘3.8’ services: jenkins: image: jenkins/jenkins:lts-jdk17 container_name: jenkins user: “1000” ports: - “8080:8080” - “50000:50000” volumes: - /opt/docker/jenkins_home:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker environment: - JAVA_OPTS=-Xmx1024m -Xms512m - TZ=Asia/Shanghai restart: unless-stopped
  • 启动与常用操作:
    • 启动:docker compose up -d
    • 查看日志:docker compose logs -f
    • 获取初始密码:cat /opt/docker/jenkins_home/secrets/initialAdminPassword
    • 停止:docker compose down 说明:挂载 /var/run/docker.sock/usr/bin/docker 后,Jenkins 容器内可直接执行 docker 命令用于构建/推送镜像(按需选择更安全的权限方案)

四 防火墙与网络访问

  • 放行端口(firewalld): sudo firewall-cmd --add-port=8080/tcp --permanent sudo firewall-cmd --reload
  • 云服务器需确保安全组/ACL 同样放行 808050000 端口
  • 访问地址:http://<服务器IP>:8080;如修改了主机端口,请使用对应端口访问

五 常见问题与优化

  • 插件下载慢:修改更新中心为国内镜像
    • 进入容器:docker exec -it jenkins bash
    • 编辑文件:vim /var/jenkins_home/hudson.model.UpdateCenter.xml
    • 替换 URL:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
    • 重启容器:docker restart jenkins
  • 容器启动后立即退出:docker logs jenkins 查看错误(常见为端口冲突、目录权限不足、磁盘空间不足)
  • 在容器内使用 Docker(DinD 便捷方案):挂载 /var/run/docker.sock/usr/bin/docker 后,Pipeline 可直接使用 docker 命令;生产环境建议结合权限最小化与镜像安全策略

0