DevOps課程-Jenkins 18
講師沒提到的undeploy docker container script研究,與Jenkins_home備份及Jenkins Server下線
前面課程撰寫的pipeline都少了將容器undeploy的步驟
都是我手動自己去做stop,講師課程內容也沒有提到
所以研究了一下
首先因為要執行docker stop要有容器id
#有針對容器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就沒有機台了!