Docker之旅-Docker图形化管理和监控(二)

DockerUI

DockerUI是一个开源的基于Docker API的web应用程序,提供等同Docker命令行的大部分功能,支持container管理,image管理, networks 管理。它最值得称道的是它华丽的设计和用来运行和管理docker的简洁的操作界面。
获取
首先拉去dockerUI镜像,现在dockerUI镜像

1
$ docker pull uifd/ui-for-docker

查看本地镜像

1
2
3
4
5
6
7
8
9
10
11
12
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hellowpy latest d1a8a6e4b2c4 28 hours ago 131MB
yaonew/hellowpy v1 d1a8a6e4b2c4 28 hours ago 131MB
redis latest ce25c7293564 12 days ago 95MB
nginx latest 568c4670fa80 4 weeks ago 109MB
python 2.7-slim 0dc3d8d47241 5 weeks ago 120MB
docker-compose_demo latest 985f3637ded4 8 weeks ago 635MB
maven 3.5-jdk-8 985f3637ded4 8 weeks ago 635MB
mysql/mysql-server 5.7 76ac6291d3cf 2 months ago 234MB
hello-world latest 4ab4c602aa5e 3 months ago 1.84kB
uifd/ui-for-docker latest 965940f98fa5 2 years ago 8.1MB

启动容器

1
$ docker run -it -d --name docker-web -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker

接着就可以在浏览器访问DockerUI管理界面了。启动了 DockerUI容器之后,就可以用它来执行启动、暂停、终止、删除以及DockerUI提供的其它操作Docker容器的命令。在浏览器里面输入 http://ip-address:9000,默认情况下登录不需要认证,但是可以配置我们的 web 服务器来要求登录认证



DockerUI优点:
1)支持container批量操作;
2)支持image管理(虽然比较薄弱)

DockerUI缺点:
不支持多主机。

Shipyard入门

比较遗憾目前Shipyard作者已停止维护,不过目前我们还是可以使用
是一个集成管理docker容器、镜像、Registries的系统,它可以简化对横跨多个主机的Docker容器集群进行管理. 通过Web用户界面,你可以大致浏览相关信息,比如你的容器在使用多少处理器和内存资源、在运行哪些容器,还可以检查所有集群上的事件日志。
其特性主要包括:
1)支持节点动态集群,可扩展节点的规模(swarm、etcd方案)
2)支持镜像管理、容器管理、节点管理等功能
3)可视化的容器管理和监控管理
4)在线容console终端

安装主节点(管理端)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ curl -s https://raw.githubusercontent.com/shipyard/shipyard-project.com/master/site/themes/shipyard/static/deploy | bash -s
Deploying Shipyard
-> Starting Database
-> Starting Discovery
-> Starting Cert Volume
-> Starting Proxy
-> Starting Swarm Manager
-> Starting Swarm Agent
-> Starting Controller
......
Digest: sha256:5f065362680fa4565dd150c8da3edd09b79a7a3010d3ceef20093c2a879187e0
Status: Downloaded newer image for shipyard/shipyard:latest
Waiting for Shipyard on 192.168.48.244:8080

Shipyard available at http://192.168.48.244:8080
Username: admin Password: shipyard

登陆拉取镜像,容器启动完成。

登陆

通过默认用户密码登陆系统

容器管理

从容器列表看shipyard还是能支持swarm的

容器的部署,填空题好费劲

容器详情

镜像管理

安裝节点

在节点主机上执行如下命令,添加

1
$ curl -sSL https://raw.githubusercontent.com/shipyard/shipyard-project.com/master/site/themes/shipyard/static/deploy | ACTION=node DISCOVERY=etcd://192.168.48.244:4001 bash -s

执行完如上命令,我在shipyard图形化管理->节点管理中 并未显示添加的节点,不知道什么原因。

总结

通过如上的使用测试,所以还凑合用吧,作者有心无力已停更,所以这个虽然能用,但是如果Docker后续更新了啥这个可能就没法支持了。

shipyard-deploy

cAdvisor入门

cAdvisor 是 google 开发的容器监控工具,我们来看看 cAdvisor 功能。

运行 cAdvisor 容器

1
2
3
4
5
6
7
8
9
$ docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest

cAdvisor 会显示当前 host 的资源使用情况,包括 CPU、内存、网络、文件系统等。
打开速度有点慢

点击docker Containers查看运行中的容器列表


点击容器连接,可以对当前容器详情进行监控


cAdvisor 提供的操作界面略显简陋,而且需要在不同页面之间跳转,打开页面速度稍慢,并且只能监控一个 host,它的一大亮点是它可以将监控到的数据导出给第三方工具如Prometheus,后续继续研究。

Portainer

Portainer是一个开源、轻量级Docker管理用户界面,基于Docker API,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型企业对容器管理的全部需求。

单机管理

1
2
$ docker volume create portainer_data
$ docker run -d -p 9000:9000 --name portainer-test -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

执行完成浏览器访问,第一次访问设置管理员密码并登陆

选择本地local

确定登陆系统后可以对本地主机上的docker容器、镜像、网络进行管理

本地主机docker维护

集群管理

基于之前我们创建的swarm集群,我们可以很方便的将Portainer指挥艇部署在swarm集群上,并对集群进行管理,为避免之前单机测试挂载目录对下面示例的影响(导致新建的portainer无法登陆),我们先删除上面创建的挂载

1
$ docker volume rm portainer_data

通过stack创建服务,下载官方yaml文件,并执行

1
2
$ curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml
$ docker stack deploy --compose-file=portainer-agent-stack.yml portainer

浏览器访问宿主机,如上第一次设置管理员密码并登陆

对swarm集群主机stack,service,containers进行管理


swarm详情

以上实例以ubuntu18.04主机为例测试,window等其他平台安装使用参见官网文档
官方演示网址:http://demo.portainer.io 账号admin 密码 tryportainer

GitHub源码

参考文章

https://www.portainer.io/
http://dockone.io/article/1686
https://portainer.readthedocs.io/
https://www.fengerzh.com/portainer/

-------------本文结束感谢您的阅读-------------
Alex.Yao wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!