docker安装及配置jenkins全流程

本教程不含docker本身安装步骤,默认已安装docker环境

一、安装jenkins

1. 拉取jenkins镜像

docker pull jenkins/jenkins:lts

2. 创建在宿主机创建jenkins目录

js 复制代码
mkdir -p ~/jenkins_home
sudo chown 1000:1000 ~/jenkins_home

3. 创建docker-compose.yaml

js 复制代码
# 自定义网络模式 可以没有值
networks:
  jenkins:
jenkins:
    # 指定服务使用的镜像
    image: jenkins/jenkins:lts
    # 设置容器重启策略为始终重启
    restart: always
    # 给予容器特权权限,允许进行Docker-in-Docker操作
    privileged: true
    networks:
      - jenkins
    # 设置容器环境变量
    environment:
      DOCKER_TLS_CERTDIR: /certs/client
    # 定义数据卷映射
    volumes:
      - /usr/local/jenkins/jenkins-data/certs:/certs/client:ro
      # jenkins 数据目录
      - ~/jenkins_home:/var/jenkins_home
      # 私钥目录
      - /root/jenkins/.ssh:/root/.ssh
      # 映射一个目录到宿主机指定目录,留作备份使用
      - /usr/local/jenkinsBackup:/var/jenkinsBackup
    # 定义端口映射
    ports:
      - "8080:8080"
      - "50000:50000"
    # 设置容器运行用户为root,以便有足够权限操作Docker
    user: root

4. 启动jenkins服务

docker-compose -p jenkins -f docker-compose.yaml up -d

这时候我们可以jenkins前端页面,通过浏览器访问地址http://主机IP:8080/ 我们可以看到这样一个界面

可以通过以下命令获取到密钥

docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

填入界面之后,会进入下面这样的页面,安装插件,创建管理员账号,后面跟着界面操作就行了

二、环境配置

java sdk安装及配置

现在jenkins 依赖的java最低版本是java 17,安卓步骤如下

js 复制代码
docker exec -u root -it you-jenkins-names bash # 要改成对应jenkins 容器名称
apt update
apt install -y openjdk-17-jdk
java -version

配置时,进入jenkins 全局工具管理界面,找到JDK部分,添加如下内容

publish over SSH 密钥配置

跨服务器部署时,需要配置SSH密钥

  1. 进入容器
js 复制代码
    # 进入jenkins容器内部,注意改成您的容器名称
    docker exec -u root -it jenkins bash
     
  1. 生成密钥
js 复制代码
ssh-keygen -m PEM -t rsa -b 2048

这时候需要输入生成文件路径,默认即可,同时要输入密码,你个人输入的密钥要记住,后面配置要用。接下来就获取响应的密钥

js 复制代码
//打印私钥
 cat /root/.ssh/id_rsa
//打印公钥
 cat /root/.ssh/id_rsa.pub
  1. 把私钥配置到jenkins上面 在jenkins的# Configure System配置中配置如下

4. 配置目标服务器的authorized_keys Jenkins服务器拷贝id_rsa.pub文件的内容放到目标服务器vim /root/.ssh/authorized_keys文件中

密钥所有内容即配置好了

三、使用数据备份和迁移

  1. 数据备份 jenkins我们可以使用ThinBackup插件备份数据,安装好后配置如下。特别注意,Backup directory 备份路径要跟我们上面的yaml文件映射的文件路径对应。后续数据迁移和恢复用得上
  1. 数据迁移

我们从其他jenkins系统通过ThinBackup备份数据后,把数据拷贝到当前服务器jenkins的备份路径对应的宿主机路径文件夹中,通过本文上面的yaml文件可以看出,

进入的当前服务器jenkins系统界面中,进入ThinBackup 管理页面

进入restore,选择我们迁移过来的对应备份,点击restore即可完成老系统所有数据的迁移。恢复备份过程中,系统会重启

到这里,整个jenkins系统就部署并迁移好了

相关推荐
女神下凡2 小时前
芯参谋(85):Linux_PPI_NAND_驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件·设计规范
12.=0.2 小时前
【持续更新】shell脚本 + Linux命令
linux·运维·服务器
Escalating_xu3 小时前
【Linux 网络编程】五种 I/O 模型与非阻塞 I/O:从“等数据”到正确处理 EAGAIN
java·linux·网络
无言听风雨丶3 小时前
Linux 容器本质探秘:Cgroup 与 Namespace 深度解析与实战
linux·运维·服务器·kubernetes
万联WANFLOW3 小时前
CVE-2026-98432 等漏洞自查:AI 查出的 Linux、Windows 漏洞,运维怎么确认受不受影响
linux·运维·windows·网络安全
OPEN-F3 小时前
Ubuntu 自动登录后 GNOME 远程桌面连不上?一次登录钥匙环锁定的排查与永久修复
linux·运维·ubuntu
硅基手札3 小时前
【Linux 内核专栏 19】20 · 嵌入式子系统 — GPIO·pinctrl·clock·regulator
linux·运维·单片机·linux内核·嵌入式开发·调试定位
默|笙4 小时前
【Linux网络】传输层协议TCP(3)滑动窗口、流量控制
linux·网络·tcp/ip
Linux界最忧郁之人5 小时前
华为云ECS&IMS&AS实战|弹性云服务器、私有镜像、弹性伸缩完整实验
linux·运维·服务器·centos·华为云·openstack
whyutianict_vv6 小时前
零基础转 AI 运维:投入清单、技术路线与核对表
linux·运维·人工智能·ai