Jenkins?+?Docker完整部署指南(附詳細步驟)
我看了一些別人發(fā)的博客也用AI提供部署步驟,然后完整的部署配置了一遍,可以成功運行啦!PS:我的服務器是阿里云有折扣買的
第一部分:升級JDK到Java 21
我的jdk版本太低了,所以要升級一下
步驟1:檢查當前Java版本
# 查看當前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 ? # 驗證安裝 java -version
預期輸出:
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)默認Java版本
如果系統(tǒng)中有多個Java版本,需要設置默認版本:
# 配置默認Java版本 sudo update-alternatives --config java ? # 會顯示類似以下內(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 ? # 輸入序號選擇Java 21(通常是最新版本的序號) # 例如輸入: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 ? # 驗證JAVA_HOME echo $JAVA_HOME java -version
步驟5:卸載舊版本Java
注意:確認新版本工作正常后再卸載舊版本
# 列出所有Java相關包 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:驗證升級結果
# 檢查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 ? # 設置密鑰權限 sudo chmod a+r /etc/apt/keyrings/docker.gpg
步驟4:添加Docker倉庫
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及相關組件 sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
步驟6:啟動并設置Docker開機自啟
# 啟動Docker服務 sudo systemctl start docker ? # 設置開機自啟動 sudo systemctl enable docker ? # 檢查Docker狀態(tài) sudo systemctl status docker
步驟7:配置Docker權限(重要)
# 創(chuàng)建docker用戶組(通常已存在) sudo groupadd docker 2>/dev/null || true ? # 將當前用戶添加到docker組 sudo usermod -aG docker $USER ? # 刷新用戶組權限(二選一) # exit 后重新連接服務器
步驟8:驗證Docker安裝
# 檢查Docker版本 docker --version ? # 運行測試容器 docker run hello-world
預期輸出:
Hello from Docker!
This message shows that your installation appears to be working correctly.
如果看到以上信息,說明Docker安裝成功!?
?網(wǎng)絡問題,無法連接到Docker Hub,因為Docker Hub在國內(nèi)訪問不穩(wěn)定「failed to resolve reference "docker.io/library/hello-world:latest":」
解決方案:配置阿里云個人鏡像加速器
我買的阿里云的服務器所以可以登錄阿里云控制臺 → 容器鏡像服務 → 鏡像工具 → 鏡像加速器,會看到類似這樣的地址:
https://xxxxx.mirror.aliyuncs.com
# 直接運行命令:
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
?
# 驗證
docker info | grep -A 10 "Registry Mirrors"
# 測試拉取鏡像
docker run hello-world
# 如果成功,應該看到:
# Hello from Docker!
# This message shows that your installation appears to be working correctly.第二部分:安裝Docker Compose
Docker Compose已經(jīng)作為插件安裝,驗證一下:
# 檢查Docker Compose版本 docker compose version
如果顯示版本信息(如 Docker Compose version v2.x.x),說明已經(jī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í)行權限 sudo chmod +x /usr/local/bin/docker-compose ? # 創(chuàng)建軟鏈接 sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose ? # 驗證安裝 docker-compose --version
第三部分:使用Docker部署Jenkins(持久化配置,Java 21)
步驟1:創(chuàng)建項目目錄結構
# 創(chuàng)建Jenkins項目目錄(可以在你自己想放的目錄下,我的在/root/mynane/main下面創(chuàng)建的) mkdir -p jenkins-docker cd jenkins-docker ? # 創(chuàng)建數(shù)據(jù)持久化目錄(一定要在jenkins-docker目錄下運行哦) mkdir -p jenkins_home ? # 查看當前目錄結構 pwd # 應該顯示:/root/你的用戶名/jenkins-docker
步驟2:設置目錄權限
# Jenkins容器內(nèi)使用UID 1000運行 # 需要給jenkins_home目錄正確的權限 sudo chown -R 1000:1000 jenkins_home ? # 驗證權限 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使用主機的Docker
- /var/run/docker.sock:/var/run/docker.sock
# 掛載Docker二進制文件(可選,用于在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:啟動Jenkins容器
# 啟動容器(后臺運行) docker compose up -d ? # 查看容器狀態(tài) docker compose ps ? # 查看容器日志 docker compose logs -f jenkins
預期輸出:
[+] Running 2/2
? Network jenkins-docker_jenkins-network Created
? Container jenkins Started
我運行docker compose up -d失敗了「unknown: failed to resolve reference "docker.io/jenkins/jenkins:lts-jdk21":」
#解決方法:是網(wǎng)絡原因,修改一下鏡像就行
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
預期:Running from: /usr/share/jenkins/jenkins.war等
但是我的預期結果中有一個警告就是我在compose文件中寫的版本號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啟動(約1-2分鐘)
# 實時查看啟動日志 docker compose logs -f jenkins ? # 看到以下信息說明啟動成功: # 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
復制顯示的密碼,例如:a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
第四部分:配置服務器防火墻和安全組
步驟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:配置阿里云安全組
登錄阿里云控制臺
進入 ECS控制臺
選擇你的實例
點擊 安全組配置
點擊 配置規(guī)則 → 入方向
點擊 手動添加 或 快速添加
添加以下規(guī)則:
| 端口范圍 | 授權對象 | 說明 |
|---|---|---|
| 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ǎng)IP:8080/jenkins
例如:http://186.141.86.234:8080/jenkins
步驟2:解鎖Jenkins
頁面會顯示 "Unlock Jenkins"
粘貼之前獲取的初始管理員密碼
點擊 Continue
步驟3:安裝插件
選擇 "Install suggested plugins"(安裝推薦插件)
等待插件安裝完成(約5-10分鐘,取決于網(wǎng)絡速度)
推薦額外安裝的插件:
Git plugin(通常已包含)
Pipeline plugin(通常已包含)
HTML Publisher(生成測試報告)
Docker plugin(Docker支持)
Docker Pipeline(Docker Pipeline支持)
Blue Ocean(現(xiàn)代化UI)
Chinese (Simplified) plugin(中文支持)
步驟4:創(chuàng)建管理員用戶
填寫以下信息:
用戶名:
admin(或自定義)密碼:設置強密碼
全名:你的名字
郵箱:你的郵箱
點擊 Save and Continue
步驟5:實例配置
Jenkins URL會自動填充為:http://你的IP:8080/Jenkins
點擊 Save and Finish
步驟6:開始使用Jenkins
點擊 Start using Jenkins
恭喜!?? Jenkins已經(jīng)成功安裝并運行!

之后應該會寫配置代碼倉庫然后定時構建之類的,bye~
總結
到此這篇關于Jenkins + Docker完整部署指南的文章就介紹到這了,更多相關Jenkins+Docker部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Docker搭建Elasticsearch集群和Kibana全過程
這篇文章主要介紹了Docker搭建Elasticsearch集群和Kibana全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-05-05
docker啟動logstash失敗的問題及解決(可能原因)
這篇文章主要介紹了docker啟動logstash失敗的問題及解決(可能原因),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
在IntelliJ IDEA中使用Docker的開發(fā)指南
這篇文章主要給大家介紹了在IntelliJ IDEA中使用Docker開發(fā)指南,文中通過圖文介紹的非常詳細,對我們的使用Docker有一定的幫助,需要的朋友可以參考下2023-09-09
docker搭建zookeeper集群和kafka集群并使用Java測試詳解
本文詳細介紹了如何在Linux虛擬機中使用Docker搭建Kafka集群環(huán)境,并通過Kafka-Manager進行可視化管理,文章包括了從鏡像拉取、容器網(wǎng)絡設置、Zookeeper和Kafka集群搭建到測試和使用Java連接集群的全過程2026-01-01

