Docker安裝部署jenkins及離線依賴問題

一、安裝

  1. 下載鏡像
docker pull jenkins/jenkins:lts

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

  1. 查看已下好的docker鏡像
docker images

在這裏插入圖片描述

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

在這裏插入圖片描述
4. 創建一個jenkins目錄【目前沒用,以後有用】

mkdir /home/jenkins_home
  1. 啓動容器
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
  1. 查看啓動的jenkins容器
docker ps|grep jenkins

在這裏插入圖片描述

  1. 網頁查看 ip:8081
    在這裏插入圖片描述
    在這裏插入圖片描述

  2. 進入容器

docker exec -it Jenkins_01 /bin/bash

在這裏插入圖片描述

  1. 按照提示查看密碼
cat /var/jenkins_home/secrets/initialAdminPassword

在這裏插入圖片描述

二、配置

  1. 安裝推薦插件
    在這裏插入圖片描述

【注】一般會出現插件安裝不上問題
主要是插件源的問題,進入容器

docker exec -it Jenkins_01 /bin/bash
  1. 查看插件源
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能用

  1. 未安裝好的推薦插件搜索下載
    在這裏插入圖片描述

[管理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/

下載到本地
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

也適合離線少量插件的補充

【注】離線大量插件的處理辦法
有網絡的情況下,直接在容器中配置好插件,然後再進行配置,可以分爲兩個方向:
在這裏插入圖片描述

一、遷移

  1. 鏡像遷移
    導出jenkins鏡像
docker save -o jenkins_v2.190.2.tar jenkins/jenkins:lts

導入

docker load < jenkins_v2.190.2.tar

數據可能會丟失

  1. 容器遷移
    導出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

在這裏插入圖片描述
猜測可能是因爲容器打包成鏡像出現的錯誤

二、文件掛載或替換【推薦辦法:安全性高】

  1. 將配置好的jenkins主目錄導在宿主機上
docker cp Jenkins_01:/var/jenkins_home /home/jenkins_home/
  1. 將需要離線環境下的jenkins容器進行掛載運行【曲線救國】
 docker run -itd -p 8081:8080 -v /home/jenkins_home:/home/jenkins_home/ jenkins:lts

【爲什麼不直接掛載到jenkins主目錄下?】
答:會出現可以執行掛載命令,但不顯示進程的錯誤

  1. 將jenkins主目錄放在離線容器下,再進行替換
    進入容器
docker exec - Jenkins_01 /bin/bash

cp替換【會報權限問題,可忽略】

cp -r /home/jenkins_home /var
  1. 最後重啓jenkins容器,配置生效
docker restart Jenkins_01

即離線jenkins插件問題及依賴問題解決

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章