Docker Compose安裝部署Jenkins

流水線可以讓項目發佈流程更加清晰,docker可以大大減少Jenkins配置。

1、前言

  1. 數據卷掛載到 /var 磁盤目錄下,因為該磁盤空間較大,後面需要掛載容器數據卷,以防內存吃緊。

  2. 為了可以留存啟動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來部署容器

  1. 創建 docker_jenkins_compose 文件夾

  2. docker_jenkins_compose 目錄下創建 docker-compose.yml 文件

  3. 編寫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
  1. 創建啟停腳本文件: restart , start, stop, 並修改文件權限
  • 創建文件
# restart
docker-compose restart
# start
docker-compose up -d
# stop
docker-compose stop
  • 修改文件權限
chmod 777 restart start stop // 可讀可寫可執行

4、啟動容器

./start

5、查看容器日誌

  1. docker logs 'ContainerId'

生成Jenkins登錄初始密碼,一會登錄的時候要用

  1. 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

防火牆要開放 500008082 端口,同時也要配置阿里雲安全組規則

👉 防火牆相關的可以參考掘金文章

本篇完,以後啟停Jenkins服務可以直接執行上面配置的可執行文件即可,比較方便。後面接着開始創建jenkins用戶,配置Jenkins。


🎈🎈🎈

🌹 持續更文,關注我,你會發現一個踏實努力的寶藏前端😊,讓我們一起學習,共同成長吧。

🎉 喜歡的小夥伴記得點贊關注收藏喲,回看不迷路 😉

🎁 歡迎大家評論交流, 蟹蟹😊