docker jenkins版本过低,导致插件无法使用的解决方法 同时解决 docker容器 Permission denied

一、更新docker 容器中的jenkins版本

更新容器中的war包,并重启

##########一。下载最新版本的war包
[root@localhost software]# wget http://mirrors.jenkins.io/war/latest/jenkins.war
--2020-08-26 10:07:04--  http://mirrors.jenkins.io/war/latest/jenkins.war
正在解析主机 mirrors.jenkins.io (mirrors.jenkins.io)... 52.202.51.185
正在连接 mirrors.jenkins.io (mirrors.jenkins.io)|52.202.51.185|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Found
位置:http://ftp-chi.osuosl.org/pub/jenkins/war/2.254/jenkins.war [跟随至新的 URL]
--2020-08-26 10:07:05--  http://ftp-chi.osuosl.org/pub/jenkins/war/2.254/jenkins.war
正在解析主机 ftp-chi.osuosl.org (ftp-chi.osuosl.org)... 64.50.236.52, 2600:3402:200:227::2
正在连接 ftp-chi.osuosl.org (ftp-chi.osuosl.org)|64.50.236.52|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:67074367 (64M) [application/x-java-archive]
正在保存至: “jenkins.war”
100%[==========================================================================================================================================================>] 67,074,367   407KB/s 用时 6m 46s 
2020-08-26 10:13:51 (161 KB/s) - 已保存 “jenkins.war” [67074367/67074367])

############二。使用root账号进入容器
[root@localhost software]# docker exec -it -u root jenkins  /bin/bash

############三。查找jenkins的war
root@36b57c5354c7:/$ whereis jenkins
root: /usr/local/bin/jenkins.sh /usr/share/jenkins
root@36b57c5354c7:/# cd /usr/share/jenkins/
root@36b57c5354c7:/usr/share/jenkins# ls
jenkins.war  ref

###########四。备份原来的war包
root@36b57c5354c7:/usr/share/jenkins# mv jenkins.war jenkins_bak.war
root@36b57c5354c7:/usr/share/jenkins# ls
jenkins_bak.war  ref

###########五。回到宿主机,将下载下来的war复制到jenkins_home的挂载目录
##########强调三遍:是回到宿主机...
[root@localhost jenkins_home]# cp /root/software/jenkins.war .
[root@localhost jenkins_home]# ls
config.xml                     identity.key.enc  jenkins.CLI.xml                                jenkins.install.UpgradeWizard.state  logs              plugins                   secrets      users
copy_reference_file.log        init.groovy.d     jenkins.install.InstallUtil.installingPlugins  jenkins.war                          nodeMonitors.xml  secret.key                updates      war
hudson.model.UpdateCenter.xml   jenkins.install.InstallUtil.lastExecVersion    jobs                                 nodes             secret.key.not-so-secret  userContent
[root@localhost jenkins_home]# 

###########六。回到容器,将挂载的目录中的war包,复制到原来容器中war的目录
root@36b57c5354c7:/usr/share/jenkins# cp /var/jenkins_home/jenkins.war .
root@36b57c5354c7:/usr/share/jenkins# ls
jenkins.war  jenkins_bak.war  ref
root@36b57c5354c7:/usr/share/jenkins# exit
exit
[root@localhost software]# docker restart jenkins
jenkins
[root@localhost software]# docker ps -a
CONTAINER ID        IMAGE                                         COMMAND                  CREATED             STATUS                     PORTS                               NAMES
36b57c5354c7        jenkins                                       "/bin/tini -- /usr/l…"   18 hours ago        Up 30 seconds              0.0.0.0:8080->8080/tcp, 50000/tcp   jenkins
[root@localhost software]# 

二、docker出现Permission denied的原因及处理方法:

#########第一步就是错误的原因,这样登陆,使用的账号是jenkins用户,而实际使用 -u root 参数进入容器后,使用的用户是root(第一部分的内容是加了-u 参数的)
[root@localhost software]# docker exec -it jenkins /bin/bash
jenkins@36b57c5354c7:/$ whereis jenkins
jenkins: /usr/local/bin/jenkins.sh /usr/share/jenkins
jenkins@36b57c5354c7:/$ cd /usr/share/jenkins
jenkins@36b57c5354c7:/usr/share/jenkins$ ls
jenkins.war  ref
jenkins@36b57c5354c7:/usr/share/jenkins$ cp jenkins.war jenkins260.war
cp: cannot create regular file 'jenkins260.war': Permission denied
jenkins@36b57c5354c7:/usr/share/jenkins$ ll
bash: ll: command not found
jenkins@36b57c5354c7:/usr/share/jenkins$ ls -l
total 68968
-rw-r--r--. 1 root    root 70620203 Jul 17  2018 jenkins.war
drwxr-xr-x. 1 jenkins root       27 Jul 17  2018 ref
jenkins@36b57c5354c7:/usr/share/jenkins$ chmod 777 jenkins.war 
chmod: changing permissions of 'jenkins.war': Operation not permitted
jenkins@36b57c5354c7:/usr/share/jenkins$ sudo chmod 777 jenkins.war
bash: sudo: command not found
jenkins@36b57c5354c7:/usr/share/jenkins$ cp jenkins.war jenkinsbak.war
cp: cannot create regular file 'jenkinsbak.war': Permission denied
jenkins@36b57c5354c7:/usr/share/jenkins$ ls

原因:进入容器时,没有添加-u 参数

没有权限的命令行:docker exec -it jenkins /bin/bash

不汇报权限问题的命令:docker exec -it -u root jenkins  /bin/bash

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值