1. 程式人生 > 實用技巧 >Docker方式安裝Jenkins

Docker方式安裝Jenkins

參考網站:https://www.jenkins.io/zh/doc/book/installing/#在docker中下載並執行jenkins

建議使用的Docker映像是jenkinsci/blueocean image(來自 the Docker Hub repository)。 該映象包含當前的長期支援 (LTS) 的Jenkins版本 (可以投入使用) ,捆綁了所有Blue Ocean外掛和功能。這意味著你不需要單獨安裝Blue Ocean外掛。

下載 jenkinsci/blueocean 映象並使用以下docker run 命令將其作為Docker中的容器執行 :

docker run \
  -u root \
  --rm \  
  -d \ 
  -p 8080:8080 \ 
  -p 50000:50000 \ 
  -v jenkins-data:/var/jenkins_home \ 
  -v /var/run/docker.sock:/var/run/docker.sock \ 
  jenkinsci/blueocean 

(可選) jenkinsci/blueocean 關閉時自動刪除Docker容器(下圖為例項)。如果您需要退出Jenkins,這可以保持整潔。
(可選)jenkinsci/blueocean 在後臺執行容器(即“分離”模式)並輸出容器ID。如果您不指定此選項, 則在終端視窗中輸出正在執行的此容器的Docker日誌。
對映(例如“釋出”)jenkinsci/blueocean 容器的埠8080到主機上的埠8080。 第一個數字代表主機上的埠,而最後一個代表容器的埠。因此,如果您為此選項指定 -p 49000:8080 ,您將通過埠49000訪問主機上的Jenkins。
(可選)將 jenkinsci/blueocean 容器的埠50000 對映到主機上的埠50000。 如果您在其他機器上設定了一個或多個基於JNLP的Jenkins代理程式,而這些代理程式又與 jenkinsci/blueocean 容器互動(充當“主”Jenkins伺服器,或者簡稱為“Jenkins主”), 則這是必需的。預設情況下,基於JNLP的Jenkins代理通過TCP埠50000與Jenkins主站進行通訊。 您可以通過“ 配置全域性安全性” 頁面更改Jenkins主伺服器上的埠號。如果您要將您的Jenkins主機的JNLP代理埠的TCP埠 值更改為51000(例如),那麼您需要重新執行Jenkins(通過此 docker run …​命令)並指定此“釋出”選項 -p 52000:51000,其中最後一個值與Jenkins master上的這個更改值相匹配,第一個值是Jenkins主機的主機上的埠號, 通過它,基於JNLP的Jenkins代理與Jenkins主機進行通訊 - 例如52000。
(可選,但強烈建議)對映在容器中的/var/jenkins_home

目錄到具有名字 jenkins-data 的volume。 如果這個卷不存在,那麼這個 docker run 命令會自動為你建立卷。 如果您希望每次重新啟動Jenkins(通過此 docker run ... 命令)時保持Jenkins狀態,則此選項是必需的 。 如果你沒有指定這個選項,那麼在每次重新啟動後,Jenkins將有效地重置為新的例項。
注意: 所述的 jenkins-data 卷也可以 docker volume create命令建立: docker volume create jenkins-data 代替對映 /var/jenkins_home 目錄轉換為Docker卷,還 可以將此目錄對映到計算機本地檔案系統上的目錄。 例如,指定該選項 -v \(HOME/jenkins:/var/jenkins_home 會將容器的 /var/jenkins_home 目錄對映 到 本地計算機上目錄中的 jenkins 子目錄, 該\)
HOME目錄通常是 /Users//jenkins 或/home/<your-username>/jenkins
(可選 /var/run/docker.sock 表示Docker守護程式通過其監聽的基於Unix的套接字。 該對映允許 jenkinsci/blueocean 容器與Docker守護程序通訊, 如果 jenkinsci/blueocean 容器需要例項化其他Docker容器,則該守護程序是必需的。 如果執行宣告式管道,其語法包含agent部分用 docker

例如, agent { docker { ... } } 此選項是必需的。 在Pipeline Syntax 頁面上閱讀更多關於這個的資訊 。
jenkinsci/blueocean Docker映象本身。如果此映象尚未下載,則此 docker run 命令 將自動為您下載映象。此外,如果自上次執行此命令後釋出了此映象的任何更新, 則再次執行此命令將自動為您下載這些已釋出的映象更新。 注意:這個Docker映象也可以使用以下 docker pull命令獨立下載(或更新) : docker pull jenkinsci/blueocean 注意: 如果複製並貼上上面的命令片段不起作用,請嘗試在此處複製並貼上此無註釋版本:

實際操作的命令如下:

docker pull jenkinsci/blueocean:latest
docker volume create jenkins-data
docker run -u root -d -p 8080:8080 -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean:latest

然後開啟瀏覽器輸入:http://ip:8080

本機沒這個檔案

因為是採用docker容器的方式,可以通過檢視這個容器的執行日誌來找到這個密碼

# docker ps                                                                                                             
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                               NAMES
8d5d57caacc8        jenkinsci/blueocean:latest   "/sbin/tini -- /usr/…"   19 seconds ago      Up 18 seconds       0.0.0.0:8080->8080/tcp, 50000/tcp   amazing_kalam

# docker logs -f amazing_kalam

選擇官方預設外掛,安裝

建立管理員使用者

地址