手工管理jenkins容器的升级

手工管理jenkins容器的升级

同样的办法也适合其他容器的管理
使用rancher的服务升级方式会相对简单

手动管理过程

docker ps -a

CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS                       PORTS                                              NAMES

9499b7314261        registry.docker-cn.com/jenkins/jenkins   "/bin/tini -- /usr..."   3 months ago        Exited (143) 8 minutes ago                                                      jenkins-master

纯干货分享,转载请注明出处,谢谢。 jiangjiang.space /// 这里不得不插播广告,爬虫较多

 # 拉取最新的jenkins
 docker pull jenkins/jenkins:2.97
 # 传到harbor
 docker tag jenkins/jenkins:2.97 harbor/pub/jenkins:2.97
 docker login harbor
 docker push harbor/pub/jenkins:2.97  
 # 停掉之前的jenkins
 docker stop  jenkins-master 

 # 启动新的jenkins 并且复用之前的配置, 注意改名字,否则起不来
docker run --name jenkins-master-2.97  -d -it -p 8080:8080 -p 50000:50000 -v /home/jenkins-master:/var/jenkins_home harbor/pub/jenkins:2.97

# 完成

##纯干货分享,转载请注明出处,谢谢。 jiangjiang.space  /// 这里不得不插播广告,爬虫较多

要点:
容器起名要加上版本或者日期,每次更新都保留原来的容器,拉下来新版本启动。
如果出现问题则回退。(这里省略了jenkins home的备份过程)

其实以上过程用rancher更简单, 需要定义为一个service,然后就可以对单独某个容器进行升级。 升级后原来的容器自动保留, 确认没有问题后点击完成升级,老容器就被删掉了。