最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于spring-boot和docker-java實現(xiàn)對docker容器的動態(tài)管理和監(jiān)控功能[附完整源碼下載]

 更新時間:2019年06月14日 08:51:29   作者:crazy_joe  
Docker 是一個開源的應用容器引擎,和傳統(tǒng)的虛擬機技術(shù)相比,Docker 容器性能開銷極低,因此也廣受開發(fā)者喜愛。這篇文章主要介紹了基于spring-boot和docker-java實現(xiàn)對docker容器的動態(tài)管理和監(jiān)控 ,需要的朋友可以參考下

docker簡介

Docker 是一個開源的應用容器引擎,和傳統(tǒng)的虛擬機技術(shù)相比,Docker 容器性能開銷極低,因此也廣受開發(fā)者喜愛。隨著基于docker的開發(fā)者越來越多,docker的鏡像也原來越豐富,未來各種企業(yè)級的完整解決方案都可以直接通過下載鏡像拿來即用。因此docker變得越來越重要。

本文目的

本文通過一個項目實例來介紹如果通過docker對外接口來實現(xiàn)對docker容器的管理和監(jiān)控。

應用場景:

對服務器資源池通過docker進行統(tǒng)一管理,按需分配資源和創(chuàng)建容器,達到資源最大化利用。同時保證各業(yè)務(容器)之間的隔離。并可支持項目的在線部署。

本項目模擬實現(xiàn)以上場景,代碼不完全嚴禁,代碼僅供學習。

吧本文

1、通過界面創(chuàng)建docker的tomcat容器,并配置限額。

2、上傳war包并部署到容器。

3、動態(tài)監(jiān)控docker所有容器的資源使用情況。

代碼基于docker-java開源組件,基于spring-boot完成功能開發(fā)。界面如下圖:

基礎環(huán)境

1、eclipse  2019-03;

2、docker for windows。本著學習和簡單的目的,并未使用linux環(huán)境,但原理和基本命令相同。

相關(guān)技術(shù)和知識點:

maven,spring-boot;spring mvc;spring上傳下載,jquery ajax和上傳。

實現(xiàn)原理

docker對外提供了豐富接口(如:restfull APi),通過這些接口可對docker進行管理。docker-java開源組件基于這個接口做了封裝,使得開發(fā)更加簡單。當然市面上還有其他一些封裝好的組件,大家可自行比較和學習。在這里對開源作者表示感謝。

實現(xiàn)過程之前期準備

1、升級windows

由于我們使用的是windows環(huán)境, 筆者自己電腦預裝的是win10 家庭版,而docker for windows 需要運行在更高級別的操作系統(tǒng)上,才能使用虛擬化技術(shù),因此需要升級到專業(yè)版。

如果需要升級的,升級過程也比較簡單,簡單介紹如下(已經(jīng)是專業(yè)版的可以略過):

點擊更改產(chǎn)品密匙,輸入專業(yè)版的密匙之后,就等待慢慢升級了。密匙自己在網(wǎng)上找,反正是有的。

2、安裝docker for windows

去官網(wǎng)下載后,一路下一步就可以了。安裝完后,會自己啟動,啟動后工具欄就會出現(xiàn)docker的標志。

安裝成功后,可以敲一些命令測試一下是否成功。如:查看docker基本信息。

3、修改docker鏡像地址。

由于默認的鏡像地址較慢,一個tomcat鏡像都500多m,網(wǎng)絡不好下載會很慢,可將鏡像地址配置成網(wǎng)易的鏡像地址,如下:

4、啟動遠程管理

勾選上最后一項,這里面的tcp//xxx就是遠程連接地址。

啟動后,在瀏覽器里面敲一下地址,看看是否能返回結(jié)果:

http://localhost:2375/info(此地址同在cmd里面輸入docker indo)返回的是json格式的內(nèi)容:

實現(xiàn)過程之代碼開發(fā)

1、創(chuàng)建maven項目。

  由于過程簡單,省略此過程。整個項目的代碼結(jié)構(gòu)如下:

2、配置docker-java和spring boot的maven依賴,最終pom文件內(nèi)容如下

通過看jar包,docker-java底層應該是用了netty依賴。

3、添加spring配置文件application.properties

配置jsp的位置和docker的管理地址。

4、主要類介紹:

1.spring boot啟動主類。

當然也可以配置其他容器或者用maven的jetty插件來啟動。

可參考另外一篇文章:Spring-boot原理(附帶實現(xiàn)一個spring-boot-starter實例)附源碼下載

注意這個類放的位置,最好放在根目錄,這樣根目錄下的所有子目錄都能被spring掃描到了。

2.DockerClientOperaterServer(與docker交互的類),具體如下:

包括如下方法:

initClient:初始化鏈接。

getDockerInfo:獲取docker基本信息;

stat:實時統(tǒng)計信息;

refreshContainers:獲取所有容器的基本信息,并放入緩存;

createAndStartrContainerAnddeployApp:根據(jù)界面?zhèn)鬟f的參數(shù)創(chuàng)建并啟動容器,同時部署項目;

stopContainer:停止容器;

rmContainer:刪除容器;

closeClient:關(guān)閉鏈接;

pushAppToCotainer:部署war包到tomcat;

由于代碼片段太長,這里看幾個主要的方法:

createContainer(創(chuàng)建容器):

這個方法里面通過docker-java創(chuàng)建容器,分配限額,配置端口映射等。

pushAppToCotainer:部署項目到tomcat

stat,監(jiān)控方法:

監(jiān)控這一塊沒有用docker-java的方法,其實它是支持的,但是由于返回結(jié)果需要各種處理,就用了投機取巧的方法。使用java調(diào)用cmd來執(zhí)行(docker stats)獲取監(jiān)控結(jié)果。

docker-java來獲取監(jiān)控信息的代碼如下:

3.DockerClientController(和界面交互的controller)。

主要方法介紹:

addContainer:添加容器以及上傳war包

以上便是主要代碼的講解。

具體代碼詳情,請下載源碼啟動后按照過程查看。

實現(xiàn)后的主要界面:

由于是示例項目,代碼沒有用什么vue和bootstrap框架。自己寫了點css和js。具體效果如下:

1、監(jiān)控管理主頁

2、添加容器;

總結(jié)

以上所述是小編給大家介紹的基于spring-boot和docker-java實現(xiàn)對docker容器的動態(tài)管理和監(jiān)控功能[附完整源碼下載],希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • docker安裝seafile企業(yè)云盤方式

    docker安裝seafile企業(yè)云盤方式

    本文詳細介紹了如何在Docker中安裝和配置Seafile,包括基礎安裝、生產(chǎn)環(huán)境配置、HTTPS設置、數(shù)據(jù)備份與恢復以及常見問題解決,通過這些步驟,您可以快速部署一個穩(wěn)定且安全的Seafile實例
    2025-02-02
  • docker部署nodejs開發(fā)環(huán)境詳細步驟(基礎示例篇)

    docker部署nodejs開發(fā)環(huán)境詳細步驟(基礎示例篇)

    這篇文章主要給大家介紹了docker部署nodejs開發(fā)環(huán)境詳細步驟,docker是一個開源的應用容器引擎,可以為我們提供安全、可移植、可重復的自動化部署的方式,需要的朋友可以參考下
    2023-10-10
  • 解決docker重啟redis,mysql數(shù)據(jù)丟失的問題

    解決docker重啟redis,mysql數(shù)據(jù)丟失的問題

    這篇文章主要介紹了解決docker重啟redis,mysql數(shù)據(jù)丟失的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Docker容器Container鏡像Image如何存儲詳解

    Docker容器Container鏡像Image如何存儲詳解

    本文主要介紹Docker容器(Container)和鏡像(Image)是如何進行數(shù)據(jù)存儲詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Docker搭建Jenkins并自動化打包部署項目的步驟

    Docker搭建Jenkins并自動化打包部署項目的步驟

    本文主要介紹了Docker搭建Jenkins并自動化打包部署項目的步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Docker實現(xiàn)雙容器部署的方法步驟

    Docker實現(xiàn)雙容器部署的方法步驟

    本文介紹了Docker和DockerCompose實現(xiàn)雙容器部署,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-12-12
  • 使用Docker-compose部署mysql的簡單步驟

    使用Docker-compose部署mysql的簡單步驟

    Docker-compose是Docker官方推出的一個工具,用于定義和運行多個 Docker 容器的應用程序,下面這篇文章主要給大家介紹了關(guān)于使用Docker-compose部署mysql的簡單步驟,需要的朋友可以參考下
    2023-04-04
  • 淺談Docker鏡像列表中的none:none是什么

    淺談Docker鏡像列表中的none:none是什么

    這篇文章主要介紹了Docker鏡像列表中的none:none問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • centos搭建部署docker環(huán)境的詳細步驟

    centos搭建部署docker環(huán)境的詳細步驟

    Docker 將程序與程序的運行環(huán)境打包在一起,從而避免了復雜的環(huán)境配置,下面這篇文章主要給大家介紹了關(guān)于centos搭建部署docker環(huán)境的詳細步驟,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • 解決Docker x509 insecure registry的問題

    解決Docker x509 insecure registry的問題

    這篇文章主要介紹了解決Docker x509 insecure registry的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03

最新評論

本溪| 平阴县| 溧水县| 延寿县| 南川市| 阿城市| 吉水县| 辽宁省| 山丹县| 芒康县| 从江县| 健康| 北宁市| 正宁县| 崇州市| 婺源县| 聂拉木县| 西和县| 肃宁县| 崇义县| 鲁甸县| 马边| 仪征市| 西乌珠穆沁旗| 富宁县| 尉犁县| 遵化市| 台中县| 南靖县| 新民市| 酉阳| 霍林郭勒市| 定结县| 洱源县| 清新县| 遵义市| 古田县| 宿州市| 舞钢市| 淄博市| 柞水县|