如何在Debian上利用Jenkins進行容器化部署
確保Debian系統已安裝Docker(容器化部署的核心工具),若未安裝可通過以下命令完成:
sudo apt update
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
驗證Docker狀態:sudo docker --version
(顯示版本號則表示安裝成功)。
從Docker Hub獲取**Jenkins LTS(長期支持版)**鏡像(穩定性更高,適合生產環境):
sudo docker pull jenkins/jenkins:lts
可通過docker images
命令查看已拉取的鏡像。
使用docker run
命令啟動Jenkins容器,關鍵參數說明:
-d
:后臺運行容器;--name jenkins
:指定容器名稱為jenkins
(便于后續管理);-p 8080:8080
:將主機8080端口映射到容器8080端口(Jenkins Web界面入口);-p 50000:50000
:將主機50000端口映射到容器50000端口(用于Jenkins代理通信);-v jenkins_home:/var/jenkins_home
:將容器內的/var/jenkins_home
(Jenkins配置、任務、日志等數據目錄)掛載到主機的jenkins_home
命名卷(實現數據持久化,避免容器刪除后數據丟失)。完整命令:
sudo docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
若需將主機特定目錄掛載到容器(替代命名卷),可將-v jenkins_home:/var/jenkins_home
替換為-v /path/on/host/jenkins_data:/var/jenkins_home
(/path/on/host/jenkins_data
為主機目錄)。
http://<Debian服務器IP>:8080
(若服務器在本地,可直接輸入http://localhost:8080
);sudo docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
復制輸出的密碼,粘貼到解鎖頁面并提交;若推薦插件未滿足需求,可通過“Manage Jenkins” → “Manage Plugins”手動安裝:
若需在Jenkins中直接操作Docker,需添加Docker工具配置:
/usr/bin/docker
,可通過which docker
命令確認);在項目根目錄創建Jenkinsfile
(定義流水線流程),示例(構建Docker鏡像并部署):
pipeline {
agent any // 使用默認代理(即Jenkins容器本身)
stages {
stage('Checkout') {
steps {
git 'https://github.com/your-repo/your-project.git' // 拉取代碼(替換為你的倉庫地址)
}
}
stage('Build Image') {
steps {
script {
docker.build("your-dockerhub-username/your-image:${env.BUILD_NUMBER}") // 構建Docker鏡像(替換為你的Docker Hub用戶名和鏡像名)
}
}
}
stage('Push Image') {
steps {
withDockerRegistry([credentialsId: 'docker-hub-credentials', url: '']) { // 登錄Docker Hub(需提前在Jenkins中創建“Docker Hub”類型的憑證)
sh 'docker push your-dockerhub-username/your-image:${env.BUILD_NUMBER}' // 推送鏡像到Docker Hub
}
}
}
stage('Deploy') {
steps {
sh 'docker run -d -p 80:80 your-dockerhub-username/your-image:${env.BUILD_NUMBER}' // 運行容器(替換為你的鏡像名和端口映射)
}
}
}
}
注:需將your-dockerhub-username
、your-image
、your-repo/your-project.git
替換為實際值。
在Jenkins主界面點擊“New Item”,輸入任務名稱(如“my-docker-deploy”),選擇“Pipeline”,點擊“OK”;
在“Pipeline”配置頁面,選擇“Pipeline script from SCM”(從版本控制獲取流水線腳本),SCM類型選擇“Git”,填寫倉庫URL(如https://github.com/your-repo/your-project.git
),Script Path填寫Jenkinsfile
(即Jenkinsfile
在倉庫中的路徑);
點擊“Save”保存任務,然后點擊“立即構建”即可觸發流水線執行。
docker-compose.yml
文件簡化部署;