Docker Compose安裝部署Jenkins
流水線可以讓項目發布流程更加清晰,docker可以大大減少Jenkins配置。
1、前言
-
數據卷掛載到
/var
磁碟目錄下,因為該磁碟空間較大,後面需要掛載容器數據卷,以防記憶體吃緊。 -
為了可以留存啟動
Jenkins
服務的配置以及啟停Jenkins方便,我採用Docker Compose
部署(沒有用到Compose的核心功能、沒有關聯容器,純粹個人喜好😊,大佬們有更好的方式煩請指點一二,感謝😊)
先簡單介紹一下 Docker Compose
2、Docker Compose
Docker Compose 是 Docker 官方編排(Orchestration)項目之一,負責快速在集群中部署分散式應用。
Dockerfile 可以讓用戶管理一個單獨的應用容器;而 Compose 則允許用戶在一個模板(YAML 格式)中定義一組相關聯的應用容器(被稱為一個 project,即項目),例如一個 Web 服務容器再加上後端的資料庫服務容器等。
該項目由 Python 編寫,實際上調用了 Docker 提供的 API 來實現。
首先介紹幾個術語。
-
服務(service):一個應用容器,實際上可以運行多個相同鏡像的實例。
-
項目(project):由一組關聯的應用容器組成的一個完整業務單元。
可見,一個項目可以由多個服務(容器)關聯而成,Compose 面向項目進行管理。
下面演示單機部署Jenkins
3、通過docker-compoes來部署容器
-
創建 docker_jenkins_compose 文件夾
-
docker_jenkins_compose 目錄下創建 docker-compose.yml 文件
-
編寫
docker-compose.yml
# docker-compose.yml
version: '3'
services: # 集合
docker_jenkins:
user: root # 為了避免一些許可權問題 在這我使用了root
restart: always # 重啟方式
image: jenkins/jenkins:lts # 指定服務所使用的鏡像 在這裡我選擇了 LTS (長期支援)
container_name: jenkins # 容器名稱
ports: # 對外暴露的埠定義
- 8082:8080 # 訪問Jenkins服務埠
- 50000:50000
volumes: # 卷掛載路徑
- /var/vol_dockers/jenkins_home/:/var/jenkins_home # 這是我們一開始創建的目錄掛載到容器內的jenkins_home目錄
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker # 這是為了我們可以在容器內使用docker命令
- /usr/local/bin/docker-compose:/usr/local/bin/docker-compose
- 創建啟停腳本文件: restart , start, stop, 並修改文件許可權
- 創建文件
# restart
docker-compose restart
# start
docker-compose up -d
# stop
docker-compose stop
- 修改文件許可權
chmod 777 restart start stop // 可讀可寫可執行
4、啟動容器
./start
5、查看容器日誌
docker logs 'ContainerId'
生成Jenkins登錄初始密碼,一會登錄的時候要用
docker logs -f jenkins
查看實時日誌
查看Jenkins狀態
ps -ef | grep jenkins
6、宿主機訪問jenkins主目錄
# 容器內/var/jenkins_home掛載目錄
/var/vol_dockers/jenkins_home
7、登錄Jenkins
瀏覽器打開 //主機ip:8082
8、啟動問題及處理
宿主機里訪問 localhost:8082
curl localhost:8082
Authentication required
防火牆要開放 50000
和8082
埠,同時也要配置阿里雲安全組規則
。
👉 防火牆相關的可以參考掘金文章
本篇完,以後啟停Jenkins服務可以直接執行上面配置的可執行文件即可,比較方便。後面接著開始創建jenkins用戶,配置Jenkins。
🎈🎈🎈
🌹 持續更文,關注我,你會發現一個踏實努力的寶藏前端😊,讓我們一起學習,共同成長吧。
🎉 喜歡的小夥伴記得點贊關注收藏喲,回看不迷路 😉
🎁 歡迎大家評論交流, 蟹蟹😊