項目開源地址在此: Humpback Source,以爲有用或者有趣,歡迎給個star~git
在回答這個問題前,咱們得先了解下什麼的 Docker
(哦,如今叫 Moby
,文中仍是繼續稱 Docker
)。github
在 Docker-百度百科 中,對 Docker
已經解釋得很清楚了。web
簡單來講,Docker能夠幫助咱們以容器的方式快速運行APP。redis
因爲一個鏡像就是一個完整的 APP
,只要咱們構建好鏡像,咱們就能夠快速,一致的在多個地方運行一樣的 APP
。這雖然解決了 APP
一致性的這個問題,可是,咱們在部署的時候,依然要遠程到服務器上,拖鏡像,經過一長串命令(端口映射,磁盤映射,環境變量等的配置)來啓動Docker容器。docker
這是一個重複而容易出錯的過程,Humpback
就是爲了解決該問題而生(固然,咱們已經擴展了更多的功能:如集羣管理,鏡像構建,私有倉庫管理等)。數據庫
那如今來回答什麼是 Humpback
,Humpback
是一個簡單易用的輕量級容器管理平臺,一個私有倉庫管理平臺,一個容器調度平臺。瀏覽器
那它能作什麼呢?緩存
Web界面
的方式,來進行容器的建立/運行以及管理(啓動,中止,重啓,監控,應用版本升級/回退)。 ★★★★★.tar.gz
文件,就能夠打包爲一個鏡像 ★★注:星級表示功能的經常使用程度,五星爲最經常使用的功能。bash
差點忘了貼官方文檔和Github地址,罪過!服務器
說了這個多,有沒有想嘗試下使用 Humbpack
進行容器管理?易用,不只體如今真正的使用上,還須要可以簡單部署。
接着,咱們就看一下應該如何部署 Humpback
:
Docker
(若是是Windows機器,那經過虛擬機(Hyper-V or Vmware)安裝Linux就算是第0步吧)這是前置條件(須要1.8.3以上),關於Docker的安裝,我就不詳細說明了,我相信有興趣體驗Humbpack的,Docker安裝確定不在話下。
Humpback
管理站點既然是用的Docker,那毫無疑問,咱們已經把Humpback-web打包成了一個鏡像,只須要pull下來便可使用。在確認docker已經安裝成功的前提下,執行以下命令,便可安裝好 Humbpack 的管理站點。
# 建立一個目錄,用來存儲humpback-web的數據庫文件 mkdir -p /opt/app/humpback-web # 完整粘貼便可,利用docker啓動容器。其中若是要修改監聽端口,就把8000改掉。 docker run -d --net=host --restart=always \ -e HUMPBACK_LISTEN_PORT=8000 \ -v /opt/app/humpback-web/dbFiles:/humpback-web/dbFiles \ --name humpback-web \ humpbacks/humpback-web:1.0.0
啓動成功以後,訪問 http://localhost:8000
來肯定是否部署成功。
若是要在宿主機訪問,請使用虛擬機綁定的IP地址,另外,須要注意防火牆。
若是可以在瀏覽器中看到登陸界面,那麼就能夠輸入默認超級管理員帳戶:admin
,密碼:123456
進行登陸。
Humpback-agent
從項目名稱就很容易看出,這貨就是一個代理,爲Humpback管理站點提供數據的。
須要先在要被管理的機器上安裝Docker環境(若是就在humpback這臺虛擬機中試驗,能夠跳過,由於已經安裝Docker),以後輸入 docker version
查看一下版本號,咱們主要關注其中的 API Version
(待會要用)。
老規矩,咱們的 humpback-agent
也必然是一個鏡像,那麼執行以下方式安裝下:
# 爲了簡單使用,先不考慮集羣功能 # 注意,以前咱們在 docker version 中記錄的 API Version 要排上用場了, # 如下命令中有個環境變量 DOCKER_API_VERSION ,須要被設定爲咱們記錄的API VERSION的值。 docker run -d -ti --net=host --restart=always \ -e DOCKER_API_VERSION=v1.21 \ -v /var/run/:/var/run/:rw \ --name=humpback-agent \ humpbacks/humpback-agent:1.0.0
當啓動成功以後,咱們的 humpback-agent
也部署成功了。
打開咱們第2步運行起來的Web管理平臺,登陸以後,建立一個Group:
並將部署了 humpback-agent
的機器IP,添加到Servers屬性中,如圖:
,而後進入咱們的Group就能看到咱們的機器和容器了。
至此,咱們的Humback已經可用了,固然,這僅僅部署了一部分功能。若是須要私有倉庫和集羣,參考官方文檔進行部署便可。
光說不練,等於白乾。如今,咱們已經部署好 Humpback
了,那咱們就來簡單使用下。
假設有以下場景,咱們想要部署一個Redis來作緩存。
官方提供的操做過程:
# 遠程登陸到服務器以後 $ wget http://download.redis.io/releases/redis-3.2.8.tar.gz $ tar xzf redis-3.2.8.tar.gz $ cd redis-3.2.8 $ make
其中可能會遇到的問題:
可是若是用Humpback呢?
在這樣的場景下,二者的差距並不大。
接着,我想臨時停一下Redis:
常規作法:
若是用Humpback呢?
此時有
Humpback
就簡單多了。
再接着,發現一臺redis不夠了,又一臺服務器,須要部署redis。
常規作法:只能把以前的部署步驟再作一次。
若是這臺服務器也被Humpback管理中,那麼用Humpback僅僅是建立一個容器的事情。
在場景一中,咱們是使用三方庫,那這個場景呢,咱們用來部署一個Web程序。
常規部署過程:
若是有多臺,那麼就要重複N次這樣的步驟
那若是是Humpback呢?
若是有多臺要部署,只須要批量建立容器便可,一次搞定
次日,發佈了一個新版本
常規部署過程:
Humpback中:
在這個過程,差別還不是太明顯,不過明顯humpback更快
第三天,發現新版本程序,有個嚴重bug(沒有bug的程序不是好程序)
這下常規部署過程就折騰了,至關於從新發佈一個歷史版本,並且此時還不能保證和歷史版本一致。
但,若是是humpback,在容器管理界面,點擊升級(實際能夠升級/降級),而後選中歷史版本,點擊肯定,就完完整整的還原到歷史版本上去了。
總之,Humpback好用,有須要就趕忙體驗下吧。暫時不須要,也能夠體驗下,吹牛也能多一些套路,並且,萬一之後用獲得呢。
固然,此文提到的僅僅的基礎用法,但我以爲,這足夠了。要想體驗更復雜的玩法,強烈建議參考官方文檔。
另附上幾張操做圖:
建立容器界面:
容器詳細信息界面:
容器版本升級界面
容器監控界面