Jenkins?+?Docker完整部署指南(附詳細(xì)步驟)
我看了一些別人發(fā)的博客也用AI提供部署步驟,然后完整的部署配置了一遍,可以成功運(yùn)行啦!PS:我的服務(wù)器是阿里云有折扣買的
第一部分:升級(jí)JDK到Java 21
我的jdk版本太低了,所以要升級(jí)一下
步驟1:檢查當(dāng)前Java版本
# 查看當(dāng)前Java版本 java -version ? # 查看所有已安裝的Java版本 update-alternatives --display java
步驟2:安裝Java 21
# 更新軟件包列表 sudo apt update ? # 安裝OpenJDK 21 sudo apt install -y openjdk-21-jdk openjdk-21-jre ? # 驗(yàn)證安裝 java -version
預(yù)期輸出:
openjdk version "21.0.x" 2024-xx-xx
OpenJDK Runtime Environment (build 21.0.x+xx-Ubuntu-...)
OpenJDK 64-Bit Server VM (build 21.0.x+xx-Ubuntu-..., mixed mode, sharing)
步驟3:配置系統(tǒng)默認(rèn)Java版本
如果系統(tǒng)中有多個(gè)Java版本,需要設(shè)置默認(rèn)版本:
# 配置默認(rèn)Java版本 sudo update-alternatives --config java ? # 會(huì)顯示類似以下內(nèi)容: # Selection Path Priority Status # ------------------------------------------------------------ # 0 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 auto mode # 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode # * 2 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 manual mode ? # 輸入序號(hào)選擇Java 21(通常是最新版本的序號(hào)) # 例如輸入:0 或 2 # 同樣配置javac sudo update-alternatives --config javac
步驟4:配置JAVA_HOME環(huán)境變量
# 查找Java 21安裝路徑 sudo update-alternatives --config java # 記下Java 21的路徑,例如:/usr/lib/jvm/java-21-openjdk-amd64 ? # 編輯環(huán)境配置文件 sudo nano /etc/environment
在文件中添加或修改 JAVA_HOME:
JAVA_HOME="/usr/lib/jvm/java-21-openjdk-amd64"
保存并退出(Ctrl + O,Enter,Ctrl + X)
# 使配置生效 source /etc/environment ? # 驗(yàn)證JAVA_HOME echo $JAVA_HOME java -version
步驟5:卸載舊版本Java
注意:確認(rèn)新版本工作正常后再卸載舊版本
# 列出所有Java相關(guān)包 dpkg -l | grep -i jdk ? # 卸載JDK 11 sudo apt remove -y openjdk-11-jdk openjdk-11-jre ? # 清理殘留配置 sudo apt autoremove -y sudo apt autoclean
步驟6:驗(yàn)證升級(jí)結(jié)果
# 檢查Java版本 java -version ? # 檢查javac版本 javac -version ? # 檢查JAVA_HOME echo $JAVA_HOME ? # 檢查PATH which java
全部顯示Java 21即為成功! ?
第二部分:安裝Docker
步驟1:卸載舊版本Docker(如果存在)
sudo apt remove docker docker-engine docker.io containerd runc
步驟2:更新系統(tǒng)并安裝依賴
# 更新軟件包索引
sudo apt update
?
# 安裝必要的依賴包
sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release \
software-properties-common步驟3:添加Docker官方GPG密鑰
# 創(chuàng)建密鑰目錄 sudo mkdir -p /etc/apt/keyrings ? # 下載并添加Docker GPG密鑰 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg ? # 設(shè)置密鑰權(quán)限 sudo chmod a+r /etc/apt/keyrings/docker.gpg
步驟4:添加Docker倉(cāng)庫(kù)
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list
步驟5:安裝Docker Engine
# 更新軟件包索引 sudo apt update ? # 安裝Docker及相關(guān)組件 sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
步驟6:?jiǎn)?dòng)并設(shè)置Docker開機(jī)自啟
# 啟動(dòng)Docker服務(wù) sudo systemctl start docker ? # 設(shè)置開機(jī)自啟動(dòng) sudo systemctl enable docker ? # 檢查Docker狀態(tài) sudo systemctl status docker
步驟7:配置Docker權(quán)限(重要)
# 創(chuàng)建docker用戶組(通常已存在) sudo groupadd docker 2>/dev/null || true ? # 將當(dāng)前用戶添加到docker組 sudo usermod -aG docker $USER ? # 刷新用戶組權(quán)限(二選一) # exit 后重新連接服務(wù)器
步驟8:驗(yàn)證Docker安裝
# 檢查Docker版本 docker --version ? # 運(yùn)行測(cè)試容器 docker run hello-world
預(yù)期輸出:
Hello from Docker!
This message shows that your installation appears to be working correctly.
如果看到以上信息,說明Docker安裝成功!?
?網(wǎng)絡(luò)問題,無(wú)法連接到Docker Hub,因?yàn)镈ocker Hub在國(guó)內(nèi)訪問不穩(wěn)定「failed to resolve reference "docker.io/library/hello-world:latest":」
解決方案:配置阿里云個(gè)人鏡像加速器
我買的阿里云的服務(wù)器所以可以登錄阿里云控制臺(tái) → 容器鏡像服務(wù) → 鏡像工具 → 鏡像加速器,會(huì)看到類似這樣的地址:
https://xxxxx.mirror.aliyuncs.com
# 直接運(yùn)行命令:
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://地址.mirror.aliyuncs.com",//替換成你的鏡像加速的地址
"https://docker.1panel.live",
"https://docker.rainbond.cc"
]
}
EOF
?
# 重啟Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
?
# 驗(yàn)證
docker info | grep -A 10 "Registry Mirrors"
# 測(cè)試?yán)$R像
docker run hello-world
# 如果成功,應(yīng)該看到:
# Hello from Docker!
# This message shows that your installation appears to be working correctly.第二部分:安裝Docker Compose
Docker Compose已經(jīng)作為插件安裝,驗(yàn)證一下:
# 檢查Docker Compose版本 docker compose version
如果顯示版本信息(如 Docker Compose version v2.x.x),說明已經(jīng)安裝成功!
如果沒有安裝,手動(dòng)安裝:
# 下載Docker Compose sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ? # 添加執(zhí)行權(quán)限 sudo chmod +x /usr/local/bin/docker-compose ? # 創(chuàng)建軟鏈接 sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose ? # 驗(yàn)證安裝 docker-compose --version
第三部分:使用Docker部署Jenkins(持久化配置,Java 21)
步驟1:創(chuàng)建項(xiàng)目目錄結(jié)構(gòu)
# 創(chuàng)建Jenkins項(xiàng)目目錄(可以在你自己想放的目錄下,我的在/root/mynane/main下面創(chuàng)建的) mkdir -p jenkins-docker cd jenkins-docker ? # 創(chuàng)建數(shù)據(jù)持久化目錄(一定要在jenkins-docker目錄下運(yùn)行哦) mkdir -p jenkins_home ? # 查看當(dāng)前目錄結(jié)構(gòu) pwd # 應(yīng)該顯示:/root/你的用戶名/jenkins-docker
步驟2:設(shè)置目錄權(quán)限
# Jenkins容器內(nèi)使用UID 1000運(yùn)行 # 需要給jenkins_home目錄正確的權(quán)限 sudo chown -R 1000:1000 jenkins_home ? # 驗(yàn)證權(quán)限 ls -la jenkins_home
步驟3:創(chuàng)建docker-compose.yml配置文件
# 使用nano編輯器創(chuàng)建配置文件 vim docker-compose.yml
將以下內(nèi)容粘貼到文件中:
version: '3.8'
?
services:
jenkins:
image: jenkins/jenkins:lts-jdk21
container_name: jenkins
restart: unless-stopped
privileged: true
user: root
ports:
- "8080:8080" # Jenkins Web界面
- "50000:50000" # Jenkins代理通信端口
volumes:
# 持久化Jenkins數(shù)據(jù)
- ./jenkins_home:/var/jenkins_home
# 允許Jenkins使用主機(jī)的Docker
- /var/run/docker.sock:/var/run/docker.sock
# 掛載Docker二進(jìn)制文件(可選,用于在Jenkins中執(zhí)行docker命令)
- /usr/bin/docker:/usr/bin/docker
environment:
- JAVA_OPTS=-Duser.timezone=Asia/Shanghai -Dhudson.model.DirectoryBrowserSupport.CSP=
- JENKINS_OPTS=--prefix=/jenkins
networks:
- jenkins-network
?
networks:
jenkins-network:
driver: bridge
重要說明:使用
jenkins/jenkins:lts-jdk21鏡像(支持最新的Jenkins LTS版本)如果想使用 Java 17,可以改為
jenkins/jenkins:lts-jdk17
保存文件:
按 esc
輸入:wq 保存退出
步驟4:?jiǎn)?dòng)Jenkins容器
# 啟動(dòng)容器(后臺(tái)運(yùn)行) docker compose up -d ? # 查看容器狀態(tài) docker compose ps ? # 查看容器日志 docker compose logs -f jenkins
預(yù)期輸出:
[+] Running 2/2
? Network jenkins-docker_jenkins-network Created
? Container jenkins Started
我運(yùn)行docker compose up -d失敗了「unknown: failed to resolve reference "docker.io/jenkins/jenkins:lts-jdk21":」
#解決方法:是網(wǎng)絡(luò)原因,修改一下鏡像就行
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": [
"https://x1doswo1.mirror.aliyuncs.com",
"https://docker.1panel.live",
"https://docker.rainbond.cc",
"https://docker.m.daocloud.io",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
"https://mirror.baidubce.com"
]
}
EOF然后在重啟一下:
sudo systemctl daemon-reload
sudo systemctl restart docker
再次執(zhí)行:
docker compose up -d
預(yù)期:Running from: /usr/share/jenkins/jenkins.war等
但是我的預(yù)期結(jié)果中有一個(gè)警告就是我在compose文件中寫的版本號(hào)version:
「docker-compose.yml: the attribute
versionis obsolete, it will be ignored, please remove it to avoid potential confusion」
解決方法:sed -i '/^version:/d' docker-compose.yml
步驟5:等待Jenkins啟動(dòng)(約1-2分鐘)
# 實(shí)時(shí)查看啟動(dòng)日志 docker compose logs -f jenkins ? # 看到以下信息說明啟動(dòng)成功: # Jenkins is fully up and running
按 Ctrl + C 退出日志查看
步驟6:獲取Jenkins初始管理員密碼
# 方式1:從日志中查看 docker compose logs jenkins | grep -A 5 "initialAdminPassword" ? # 方式2:從容器內(nèi)查看 docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword ? # 方式3:從持久化目錄查看 cat jenkins_home/secrets/initialAdminPassword
復(fù)制顯示的密碼,例如:a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
第四部分:配置服務(wù)器防火墻和安全組
步驟1:配置Ubuntu防火墻(UFW)
# 檢查防火墻狀態(tài) sudo ufw status ? # 如果防火墻未啟用,先啟用 sudo ufw enable ? # 允許SSH(防止被鎖在外面?。? sudo ufw allow 22/tcp ? # 允許Jenkins Web端口 sudo ufw allow 8080/tcp ? # 允許Jenkins代理端口(如果需要) sudo ufw allow 50000/tcp ? # 重新加載防火墻 sudo ufw reload ? # 查看規(guī)則 sudo ufw status numbered
步驟2:配置阿里云安全組
登錄阿里云控制臺(tái)
進(jìn)入 ECS控制臺(tái)
選擇你的實(shí)例
點(diǎn)擊 安全組配置
點(diǎn)擊 配置規(guī)則 → 入方向
點(diǎn)擊 手動(dòng)添加 或 快速添加
添加以下規(guī)則:
| 端口范圍 | 授權(quán)對(duì)象 | 說明 |
|---|---|---|
| 22/22 | 0.0.0.0/0 | SSH |
| 8080/8080 | 0.0.0.0/0 | Jenkins Web |
| 50000/50000 | 0.0.0.0/0 | Jenkins Agent |
注意: 0.0.0.0/0 表示允許所有IP訪問,生產(chǎn)環(huán)境建議限制特定IP
第五部分:訪問和初始化Jenkins
步驟1:訪問Jenkins
在瀏覽器中打開:
http://你的服務(wù)器公網(wǎng)IP:8080/jenkins
例如:http://186.141.86.234:8080/jenkins
步驟2:解鎖Jenkins
頁(yè)面會(huì)顯示 "Unlock Jenkins"
粘貼之前獲取的初始管理員密碼
點(diǎn)擊 Continue
步驟3:安裝插件
選擇 "Install suggested plugins"(安裝推薦插件)
等待插件安裝完成(約5-10分鐘,取決于網(wǎng)絡(luò)速度)
推薦額外安裝的插件:
Git plugin(通常已包含)
Pipeline plugin(通常已包含)
HTML Publisher(生成測(cè)試報(bào)告)
Docker plugin(Docker支持)
Docker Pipeline(Docker Pipeline支持)
Blue Ocean(現(xiàn)代化UI)
Chinese (Simplified) plugin(中文支持)
步驟4:創(chuàng)建管理員用戶
填寫以下信息:
用戶名:
admin(或自定義)密碼:設(shè)置強(qiáng)密碼
全名:你的名字
郵箱:你的郵箱
點(diǎn)擊 Save and Continue
步驟5:實(shí)例配置
Jenkins URL會(huì)自動(dòng)填充為:http://你的IP:8080/Jenkins
點(diǎn)擊 Save and Finish
步驟6:開始使用Jenkins
點(diǎn)擊 Start using Jenkins
恭喜!?? Jenkins已經(jīng)成功安裝并運(yùn)行!

之后應(yīng)該會(huì)寫配置代碼倉(cāng)庫(kù)然后定時(shí)構(gòu)建之類的,bye~
總結(jié)
到此這篇關(guān)于Jenkins + Docker完整部署指南的文章就介紹到這了,更多相關(guān)Jenkins+Docker部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker搭建Elasticsearch集群和Kibana全過程
這篇文章主要介紹了Docker搭建Elasticsearch集群和Kibana全過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-05-05
Docker拉取與部署OpenJDK到實(shí)際應(yīng)用的完整流程
這篇文章主要介紹了Docker拉取與部署OpenJDK到實(shí)際應(yīng)用的相關(guān)資料,包括鏡像拉取、容器運(yùn)行、Java程序測(cè)試、Dockerfile構(gòu)建優(yōu)化、容器管理、Spring Boot應(yīng)用部署、數(shù)據(jù)持久化與網(wǎng)絡(luò)配置、常用問題與解決方案以及最佳實(shí)踐總結(jié),需要的朋友可以參考下2025-11-11
docker啟動(dòng)logstash失敗的問題及解決(可能原因)
這篇文章主要介紹了docker啟動(dòng)logstash失敗的問題及解決(可能原因),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
docker nginx ssl設(shè)置的實(shí)現(xiàn)步驟
本文主要介紹了docker nginx ssl設(shè)置的實(shí)現(xiàn)步驟,使用docker運(yùn)行nginx,配置代理,和ssl設(shè)置,進(jìn)行https訪問,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08
在IntelliJ IDEA中使用Docker的開發(fā)指南
這篇文章主要給大家介紹了在IntelliJ IDEA中使用Docker開發(fā)指南,文中通過圖文介紹的非常詳細(xì),對(duì)我們的使用Docker有一定的幫助,需要的朋友可以參考下2023-09-09
啟動(dòng)桌面Docker提示虛擬服務(wù)未啟動(dòng)兩種解決方案
Docker 是?個(gè)開源的應(yīng)用容器引擎,可以實(shí)現(xiàn)虛擬化,這篇文章主要介紹了在啟動(dòng)Docker?Desktop時(shí)遇到的錯(cuò)誤,并提供了解決方案,文中通過代碼以及圖文介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04
docker搭建zookeeper集群和kafka集群并使用Java測(cè)試詳解
本文詳細(xì)介紹了如何在Linux虛擬機(jī)中使用Docker搭建Kafka集群環(huán)境,并通過Kafka-Manager進(jìn)行可視化管理,文章包括了從鏡像拉取、容器網(wǎng)絡(luò)設(shè)置、Zookeeper和Kafka集群搭建到測(cè)試和使用Java連接集群的全過程2026-01-01
解決docker pull鏡像報(bào)錯(cuò)的問題
這篇文章主要介紹了解決docker pull鏡像報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2021-03-03

