一、安裝
- 下載鏡像
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插件問題及依賴問題解決