Docker安裝Jenkins全過程
先來(lái)解一下什么是Jenkins
jenkins是基于java開發(fā)的一種持續(xù)集成工具,用于自動(dòng)化軟件項(xiàng)目的構(gòu)建、測(cè)試和部署流程,監(jiān)控持續(xù)重復(fù)的工作,旨在提供一個(gè)開放易用的軟件平臺(tái),使軟件項(xiàng)目可以進(jìn)行持續(xù)集成。
jenkins功能:
- 1、軟件的持續(xù)構(gòu)建和測(cè)試,使開發(fā)人員可以很容易的將改變集成到工程中;
- 2、監(jiān)視job的執(zhí)行;
- 3、項(xiàng)目源代碼修改的檢測(cè);
- 4、分布式構(gòu)建,可更好地利用硬件資源,節(jié)省時(shí)間。
Jenkins基于java開發(fā),提供了一個(gè)易用的平臺(tái),使得軟件的持續(xù)集成成為可能。它起源于Hudson,是一個(gè)可擴(kuò)展的持續(xù)集成引擎。
Jenkins的核心功能包括持續(xù)的自動(dòng)化任務(wù)、構(gòu)建監(jiān)控、測(cè)試報(bào)告等,它可以幫助開發(fā)團(tuán)隊(duì)提高軟件的質(zhì)量和效率。
通俗來(lái)說: Jenkins是一個(gè)開源的軟件。
這款軟件可以供我們安裝,安裝成功以后在瀏覽器中輸入 http://localhost:8080(或者是輸入http://安裝Jenkins電腦的IP:8080)會(huì)出現(xiàn)一個(gè)界面,在這個(gè)界面上進(jìn)行一些配置,我們就可以通過這個(gè)軟件來(lái)管理我們正在開發(fā)的項(xiàng)目,可以讓它來(lái)減少我們軟件開發(fā)的時(shí)候的出錯(cuò)率,替我們把軟件合到一起,并且將有問題的部分檢測(cè)出來(lái)。
Jenkins功能
軟件的持續(xù)構(gòu)建和測(cè)試,Jenkins提供了一個(gè)系統(tǒng),使開發(fā)人員可以很容易的將改變集成到工程中。自動(dòng)化的、持續(xù)的構(gòu)建有利于提高開發(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 開發(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)的操作中可以通過名稱來(lái)引用該容器。
- -p 8089:8080: 將容器內(nèi)部的 8080 端口映射到宿主機(jī)上的 8089 端口,這樣可以通過訪問宿主機(jī)的 8089 端口來(lái)訪問 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 容器可以訪問宿主機(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 容器可以訪問宿主機(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)證一下,訪問: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)獲取到了密碼回到剛才訪問的頁(yè)面進(jìn)行解鎖,點(diǎn)擊繼續(xù)

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

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

保存完成之后,如果頁(yè)面卡住了,那就重新刷新一下頁(yè)面,再來(lái)填寫一遍就可以了,然后就可以開始你們的jenkins之旅了??!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用?Docker?Compose?構(gòu)建復(fù)雜的多容器?App的方法
Docker Compose 工具相當(dāng)于 C/C++ 的 make 工具,使用 make 需要 Makefile,所有的編譯鏈接設(shè)置都在Makefile 中指定,不需要為了運(yùn)行程序而每次都在終端手動(dòng)輸入長(zhǎng)串的指令,這篇文章主要介紹了使用?Docker?Compose?構(gòu)建復(fù)雜的多容器?App,需要的朋友可以參考下2022-04-04
Docker MySQL 8.0.45性能優(yōu)化配置文檔方式
文章主要討論了MySQL 8.0.4 Docker容器在特定服務(wù)器環(huán)境中的優(yōu)化過程,首先描述了當(dāng)前配置和參數(shù),接著分析了優(yōu)化前的配置,發(fā)現(xiàn)存在嚴(yán)重的資源浪費(fèi),隨后,文章詳細(xì)介紹了優(yōu)化后的參數(shù)配置,包括InnoDB緩存、連接與線程配置、內(nèi)存在存臨時(shí)表、慢查詢?nèi)罩镜鹊鹊恼{(diào)整2026-05-05
docker中使用mongodb數(shù)據(jù)庫(kù)詳解(在局域網(wǎng)訪問)
這篇文章主要給大家介紹了在docker中使用mongodb數(shù)據(jù)庫(kù),在局域網(wǎng)訪問的相關(guān)資料,文中將步驟介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-06-06
docker映射端口穿透內(nèi)置防火墻的實(shí)現(xiàn)
在使用Docker部署項(xiàng)目時(shí),即使未開啟CentOS7的Firewalld防火墻,端口仍可被外網(wǎng)訪問,這是因?yàn)镈ocker在安裝后會(huì)接管iptables,并自動(dòng)添加規(guī)則以放行指定端口,解決方法包括依賴外置防火墻放行端口、指定端口監(jiān)聽地址為本機(jī)、禁用Docker的iptables規(guī)則修改2024-10-10
如何使用?docker?搭建一個(gè)?mysql?服務(wù)
這篇文章主要介紹了如何使用?docker?搭建一個(gè)mysql服務(wù),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
使用Docker的NFS-Ganesha鏡像搭建nfs服務(wù)器的詳細(xì)過程
這篇文章主要介紹了使用Docker的NFS-Ganesha鏡像搭建nfs服務(wù)器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08

