Docker安裝Jenkins全過(guò)程
先來(lái)解一下什么是Jenkins
jenkins是基于java開(kāi)發(fā)的一種持續(xù)集成工具,用于自動(dòng)化軟件項(xiàng)目的構(gòu)建、測(cè)試和部署流程,監(jiān)控持續(xù)重復(fù)的工作,旨在提供一個(gè)開(kāi)放易用的軟件平臺(tái),使軟件項(xiàng)目可以進(jìn)行持續(xù)集成。
jenkins功能:
- 1、軟件的持續(xù)構(gòu)建和測(cè)試,使開(kāi)發(fā)人員可以很容易的將改變集成到工程中;
- 2、監(jiān)視job的執(zhí)行;
- 3、項(xiàng)目源代碼修改的檢測(cè);
- 4、分布式構(gòu)建,可更好地利用硬件資源,節(jié)省時(shí)間。
Jenkins基于java開(kāi)發(fā),提供了一個(gè)易用的平臺(tái),使得軟件的持續(xù)集成成為可能。它起源于Hudson,是一個(gè)可擴(kuò)展的持續(xù)集成引擎。
Jenkins的核心功能包括持續(xù)的自動(dòng)化任務(wù)、構(gòu)建監(jiān)控、測(cè)試報(bào)告等,它可以幫助開(kāi)發(fā)團(tuán)隊(duì)提高軟件的質(zhì)量和效率。
通俗來(lái)說(shuō): Jenkins是一個(gè)開(kāi)源的軟件。
這款軟件可以供我們安裝,安裝成功以后在瀏覽器中輸入 http://localhost:8080(或者是輸入http://安裝Jenkins電腦的IP:8080)會(huì)出現(xiàn)一個(gè)界面,在這個(gè)界面上進(jìn)行一些配置,我們就可以通過(guò)這個(gè)軟件來(lái)管理我們正在開(kāi)發(fā)的項(xiàng)目,可以讓它來(lái)減少我們軟件開(kāi)發(fā)的時(shí)候的出錯(cuò)率,替我們把軟件合到一起,并且將有問(wèn)題的部分檢測(cè)出來(lái)。
Jenkins功能
軟件的持續(xù)構(gòu)建和測(cè)試,Jenkins提供了一個(gè)系統(tǒng),使開(kāi)發(fā)人員可以很容易的將改變集成到工程中。自動(dòng)化的、持續(xù)的構(gòu)建有利于提高開(kāi)發(fā)效率。
監(jiān)視job的執(zhí)行,job可以實(shí)現(xiàn)很多的功能,Jenkins可以對(duì)這些項(xiàng)目進(jìn)行顯示,讓用戶更清楚的注意到這些損毀的job。
項(xiàng)目源代碼修改的檢測(cè),jenkins能夠從項(xiàng)目的Subversion/CVS生成最近修改的集合列表,且不會(huì)增加Subversion/CVS Repository的負(fù)載。
分布式構(gòu)建,Jenkins可以將工程構(gòu)建到多臺(tái)機(jī)器,更好地利用硬件資源,節(jié)省時(shí)間
我們先來(lái)拉取jenkins的鏡像,作者這里指定了版本2.401.1 如果不之指定版本,默認(rèn)拉取為最新版本
docker pull jenkins/jenkins:2.401.1
?
可以看到我們已經(jīng)拉取好jenkins的鏡像了
創(chuàng)建文件夾 mkdir /mydata/jenkins
?
?
給這個(gè)目錄賦權(quán)限 chmod 777 /mydata/jenkins
![]()
可以看到權(quán)限變成了最高權(quán)限

由于之后要自動(dòng)化部署要用到maven和jdk,我們來(lái)下載一下,具體怎么使用jenkins,之后博主會(huì)繼續(xù)更新
首先我們需要下載 java 開(kāi)發(fā)工具包 JDK,下載地址:
Java Downloads | Oracle?編輯https://www.oracle.com/java/technologies/downloads/
我們要選擇linux版本1.8也可以,17版本也可以,但是作者這里推薦使用1.8,因?yàn)?7版本好像和jenkins有沖突
下載好之后,我們自定義一個(gè)路徑,上傳解壓之后就好了,作者下載到了usr下面

也可以使用下面這段命令下載jdk壓縮包
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
使用下面這段命令解壓
tar -zxvf jdk-8u131-linux-x64.tar.gz #注意,你在那個(gè)目錄下上傳,并且解壓,之后這個(gè)jdk就在那個(gè)目錄下 #根據(jù)解壓目錄配置 java 環(huán)境變量 vim /etc/profile #根據(jù)自己的安裝目錄配置 export JAVA_HOME=/usr/jdk1.8.0_131 export PATH=$JAVA_HOME/bin:$PATH #文件生效 source /etc/profile #測(cè)試,顯示出 jdk 版本即為安裝成功 java -version
下面來(lái)安裝maven
#獲取壓縮包 wget https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz #解壓縮 tar -zxvf apache-maven-3.9.6-bin.tar.gz #配置maven環(huán)境變量 vim /etc/profile #修改為自己的安裝目錄 export MAVEN_HOME=/opt/maven3.9/apache-maven-3.9.6 export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH #文件生效 source /etc/profile #測(cè)試,顯示出 maven 版本即為安裝成功 mvn -v
下面我們來(lái)啟動(dòng)容器
docker run -d --name jenkins -p 8089:8080 -p 8880:8888 -p 50000:50000 -v /usr/jdk1.8.0_131:/usr/jdk1.8.0_131 -v /brook/maven/apache-maven-3.9.6:/brook/maven/apache-maven-3.9.6 -v /usr/local/docker/jenkins:/var/jenkins_home jenkins/jenkins:2.401.1
解釋一下
- docker run: 運(yùn)行一個(gè) Docker 容器的命令。
- -d: 表示在后臺(tái)(detached 模式)運(yùn)行容器。
- --name jenkins: 為容器指定名稱為 "jenkins",這樣在未來(lái)的操作中可以通過(guò)名稱來(lái)引用該容器。
- -p 8089:8080: 將容器內(nèi)部的 8080 端口映射到宿主機(jī)上的 8089 端口,這樣可以通過(guò)訪問(wèn)宿主機(jī)的 8089 端口來(lái)訪問(wèn) Jenkins 服務(wù)。
- -p 8880:8888: 將容器內(nèi)部的 8888 端口映射到宿主機(jī)上的 8880 端口,這可能是 Jenkins 容器中使用的其他服務(wù)端口。
- -p 50000:50000: 將容器內(nèi)部的 50000 端口映射到宿主機(jī)上的 50000 端口,這通常用于 Jenkins 的 agent 節(jié)點(diǎn)連接。
- -v /usr/jdk1.8.0_131:/usr/jdk1.8.0_131: 將宿主機(jī)的 /usr/jdk1.8.0_131 目錄掛載到容器的 /usr/jdk1.8.0_131 目錄,這樣 Jenkins 容器可以訪問(wèn)宿主機(jī)上的 JDK。
- -v /brook/maven/apache-maven-3.9.6:/brook/maven/apache-maven-3.9.6: 將宿主機(jī)的 /brook/maven/apache-maven-3.9.6 目錄掛載到容器的 /brook/maven/apache-maven-3.9.6 目錄,這樣 Jenkins 容器可以訪問(wèn)宿主機(jī)上的 Maven。
- -v /usr/local/docker/jenkins:/var/jenkins_home: 將宿主機(jī)的 /usr/local/docker/jenkins 目錄掛載到容器的 /var/jenkins_home 目錄,這樣可以將 Jenkins 的數(shù)據(jù)持久化存儲(chǔ)到宿主機(jī)上。
- jenkins/jenkins:2.401.1: 指定要運(yùn)行的鏡像名稱及版本號(hào)。在這里,使用的是 Jenkins 官方鏡像,并指定了版本號(hào)為 2.401.1。
可以看到我們已經(jīng)啟動(dòng)成功了
![]()
我們來(lái)驗(yàn)證一下,訪問(wèn):http://自己的服務(wù)器Ip:8089

我們進(jìn)入容器來(lái)獲取我們的密碼
進(jìn)入jenkins容器
docker exec -it jenkins /bin/bash

使用以下命令查看密碼
cat /var/jenkins_home/secrets/initialAdminPassword
我們已經(jīng)獲取到了密碼回到剛才訪問(wèn)的頁(yè)面進(jìn)行解鎖,點(diǎn)擊繼續(xù)

來(lái)到這個(gè)頁(yè)面,我們選擇安裝推薦的插件

這個(gè)過(guò)程中可能有點(diǎn)慢,可能是由于網(wǎng)絡(luò)的原因
下載完成之后,我們來(lái)創(chuàng)建管理員用戶

保存完成之后,如果頁(yè)面卡住了,那就重新刷新一下頁(yè)面,再來(lái)填寫一遍就可以了,然后就可以開(kāi)始你們的jenkins之旅了??!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決docker中mysql時(shí)間與系統(tǒng)時(shí)間不一致問(wèn)題
最近在Docker中裝mysql時(shí),發(fā)現(xiàn)數(shù)據(jù)庫(kù)時(shí)間與系統(tǒng)時(shí)間相差8個(gè)小時(shí)。查詢資料發(fā)現(xiàn),docker的默認(rèn)時(shí)區(qū)是0區(qū),其實(shí)這會(huì)對(duì)安裝的容器造成不少麻煩,比如執(zhí)行日志的記錄不準(zhǔn)確等2021-12-12
docker-compose配置并部署redis服務(wù)的實(shí)現(xiàn)
本文主要介紹了docker-compose配置并部署redis服務(wù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
如何監(jiān)控docker容器運(yùn)行狀態(tài) shell 腳本
這篇文章主要介紹了如何監(jiān)控docker容器運(yùn)行狀態(tài) shell 腳本的操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Docker搭建本地私有倉(cāng)庫(kù)的詳細(xì)步驟
本篇文章主要介紹了Docker搭建本地私有倉(cāng)庫(kù)的詳細(xì)步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-02-02
Docker搭建MySQL5.7主從復(fù)制的實(shí)現(xiàn)
本文主要介紹了Docker搭建MySQL5.7主從復(fù)制的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06

