DevOps課程-Jenkins 18

講師沒提到的undeploy docker container script研究,與Jenkins_home備份及Jenkins Server下線

ZONGRU Li
Feb 3, 2022

前面課程撰寫的pipeline都少了將容器undeploy的步驟

都是我手動自己去做stop,講師課程內容也沒有提到

所以研究了一下

首先因為要執行docker stop要有容器id

參考stackoverflow

#有針對容器Name找到容器id:
docker ps -a -q --filter="name=<containerName>"
#有針對image名稱找到容器id:
docker ps -a -q --filter ancestor=<image-name>

由上面結果,看起來用容器名稱片段來找到容器id比較方便

其中若是同前一篇用docker-compose.yaml來做的話,其容器名稱片段會有:

實際容器名稱長這樣:

所以嘗試撰寫shell script來停止上述運行中的容器

最終成果:

暫時註解掉上述的docker stop指令

實際執行(可以傳入多個containerName片段):

排版有待研究...應該可以正常執行沒問題!

接著只要把這個script同步到pipeline就可以做到undeploy了!

由於後面會有一陣子用不太到Jenkins機台

所以以下做目前現有的Jenkins Container備份

首先確認當初建立的docker volume:

#執行指令確認volume清單:
docker volume ls
#執行指令確認volume細節
docker inspect {volume名稱}

當初建立還有綁定docker sock不過這個就比較不需要備份了

接著開始透過FileZilla複製上述的目標目錄 →

/var/lib/docker/volumes/jenkins_home/_data

透過金鑰檔連線

這邊決定備份到這一層 →

/var/lib/docker/volumes/jenkins_home

傳了應該有半小時多(小檔案太多):

然後關掉:

這樣目前DigitalOcean就沒有機台了!

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet