项目开源地址在此: 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好用,有须要就赶忙体验下吧。暂时不须要,也能够体验下,吹牛也能多一些套路,并且,万一之后用获得呢。
固然,此文提到的仅仅的基础用法,但我以为,这足够了。要想体验更复杂的玩法,强烈建议参考官方文档。
另附上几张操做图:
建立容器界面:
容器详细信息界面:
容器版本升级界面
容器监控界面