Docker安装部署jenkins及离线依赖问题

mac2026-01-01  0

一、安装

下载镜像 docker pull jenkins/jenkins:lts

一定要安装最新版的jenkins,如果安装旧版本,很多插件安装不上

查看已下好的docker镜像 docker images

查看是否是最新版 docker inspect docker inspect jenkins/jenkins:lts

4. 创建一个jenkins目录【目前没用,以后有用】

mkdir /home/jenkins_home 启动容器 docker run -d --name Jenkins_01 -p 8081:8080 -v /home/jenkins_home:/home/jenkins_home jenkins/jenkins:lts

【注】可能会遇到iptables问题: iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 192.168.40.142:8080 ! -i br-ff45d935188b: iptables: No chain/target/match by that name. (exit status 1)

重启docker

systemctl restart docker 查看启动的jenkins容器 docker ps|grep jenkins

网页查看 ip:8081

进入容器

docker exec -it Jenkins_01 /bin/bash

按照提示查看密码 cat /var/jenkins_home/secrets/initialAdminPassword

二、配置

安装推荐插件

【注】一般会出现插件安装不上问题 主要是插件源的问题,进入容器

docker exec -it Jenkins_01 /bin/bash 查看插件源 cat /var/jenkins_home/hudson.model.UpdateCenter.xml

可以先将插件源网址在浏览器上做测试,能访问到就可以,一般来说清华源比较快 将https://updates.jenkins.io/update-center.json源 替换为清华源

http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json sed –ri 's#<url>https://updates.jenkins.io/update-center.json</url>#<url>http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>#' /var/jenkins_home/hudson.model.UpdateCenter.xml

或者web界面修改:[管理jenkins]—[插件管理]—[Advanced]—[Update site]

【注】jenkins容器中没有vi,yum,还好sed能用

未安装好的推荐插件搜索下载

[管理jenkins]—[管理插件]—[可选插件]—[挨个搜索]—[直接安装]

【注】插件下载完可能会存在依赖问题 报错:workflow-support version 3.1 is missing. To fix, install version 3.1 or later. 解决: 在https://updates.jenkins.io/download/plugins/源中选择合适的hpi文件,手动添加 例:

https://updates.jenkins.io/download/plugins/workflow-support/

下载到本地

也适合离线少量插件的补充

【注】离线大量插件的处理办法 有网络的情况下,直接在容器中配置好插件,然后再进行配置,可以分为两个方向:

一、迁移

镜像迁移 导出jenkins镜像 docker save -o jenkins_v2.190.2.tar jenkins/jenkins:lts

导入

docker load < jenkins_v2.190.2.tar

数据可能会丢失

容器迁移 导出jenkins容器 docker export Jenkins_01 > jenkins_v2.190.2.tar

导入

docker import jenkins_v2.190.2.tar jenkins/jenkins:lts

数据可能也会丢失而且可能会出现docker: Error response from daemon: No command specified. 查看镜像详情

docker inspect jenkins/jenkins:lts

问题出现在容器没有cmd命令 可以执行创建命令,但不显示进程的错误

docker create jenkins/jenkins:lts /bin/bash

猜测可能是因为容器打包成镜像出现的错误

二、文件挂载或替换【推荐办法:安全性高】

将配置好的jenkins主目录导在宿主机上 docker cp Jenkins_01:/var/jenkins_home /home/jenkins_home/ 将需要离线环境下的jenkins容器进行挂载运行【曲线救国】 docker run -itd -p 8081:8080 -v /home/jenkins_home:/home/jenkins_home/ jenkins:lts

【为什么不直接挂载到jenkins主目录下?】 答:会出现可以执行挂载命令,但不显示进程的错误

将jenkins主目录放在离线容器下,再进行替换 进入容器 docker exec - Jenkins_01 /bin/bash

cp替换【会报权限问题,可忽略】

cp -r /home/jenkins_home /var 最后重启jenkins容器,配置生效 docker restart Jenkins_01

即离线jenkins插件问题及依赖问题解决

最新回复(0)