Docker內如何更新Jenkins
很多小伙伴在Docker中使用Jenkins時更新遇到困難,本次結合自己的實際經驗,詳細講解。
根據官網Jenkins了解以下內容:
一、Jenkins 是什么?

Jenkins是一款開源 CI&CD 軟件,用于自動化各種任務,包括構建、測試和部署軟件。
Jenkins 支持各種運行方式,可通過系統(tǒng)包、Docker 或者通過一個獨立的 Java 程序。
二、開始使用 Jenkins
本導讀將向您介紹使用 Jenkins、Jenkins 的主要特性和 Jenkins Pipeline 的基本知識。
本導讀使用“獨立”的 Jenkins 發(fā)行版,它可以在您自己本地的機器上運行。
2.1 準備工作
第一次使用 Jenkins,您需要:
機器要求:
| 內存 | 硬盤 |
|---|---|
| 256 MB 內存,建議大于 512 MB | 10 GB 的硬盤空間 |
需要安裝的軟件:
- Java 8 ( JRE 或者 JDK 都可以)
- Docker (導航到網站頂部的Get Docker鏈接以訪問適合您平臺的Docker下載)
2.2 下載并運行 Jenkins
1.下載 Jenkins.
2.打開終端進入到下載目錄.
3.運行命令
java -jar jenkins.war --httpPort=8080
4.打開瀏覽器進入鏈接
http://localhost:8080
5.按照說明完成安裝.
三、通過docker-compose部署Jenkins
我的代碼如下:
version: "3"
volumes: # 自定義數(shù)據卷
jenkins_vol: #定義數(shù)據卷同步存放jenkins數(shù)據
networks:
jenkins_network:
driver: bridge
services:
jenkins:
image: jenkins/jenkins
ports:
- "8080:8080"
- "50000:50000"
volumes:
- ./compose/jenkins/jenkins_home:/jenkins_file
- jenkins_vol:/var/jenkins_home
networks:
- jenkins_network
restart: always名詞解釋:
volumes——自定義數(shù)據卷networks——自定義網絡(默認橋接), 不使用links通信services——定義服務
jenkins: # jenkins服務 image: jenkins/jenkins # jenkins鏡像 ports: # 端口映射 - "8080:8080" # 映射到宿主機端口 - "50000:50000" # 映射到宿主機端口 volumes: # 數(shù)據卷掛載 - ./compose/jenkins/jenkins_home:/jenkins_file # 掛載jenkins數(shù)據 - jenkins_vol:/var/jenkins_home # 掛載jenkins數(shù)據 networks: # 網絡 - jenkins_network # 自定義網絡 restart: always # 重啟策略
通過命令運行:
sudo docker-compose up -d
執(zhí)行完畢后,Jenkins創(chuàng)建成功:

在瀏覽器通過URL訪問http://ip:8080進行訪問,首次使用根據頁面提示進行操作:

可使用cat命令查看密碼進行登錄:
cat /var/jenkins_home/secrets/initialAdminPassword

得到一串字符,這就是密碼,復制到瀏覽器中點擊繼續(xù):

這里根據需求安裝 ,后續(xù)一路默認安裝填寫即可。
四、更新Jenkins
根據提示,當前有更新版本:

點擊Downlaod進入下載jenkins.war文件 ,下載完成后將jenkins.war文件復制到本地與Docker容器掛載的對應目錄,根據上面的部署文件可以看出,該項目的本地掛載路徑為:
./compose/jenkins/jenkins_home

該路徑對應docker容器路徑為:
/jenkins_file
進入Docker容器,使用cd命令進入jenkins_file目錄,使用cp命令復制.war包到解析目錄,jenkins默認.war包路徑為/usr/share/jenkins
cp jenkins.war /usr/share/jenkins
最后重啟容器就會發(fā)現(xiàn)jenkins更新成功了!?。?/p>
如果遇到容器內cp權限問題 ,使用docker exec -it -u root 容器id /bin/bash進入即可
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

