Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)

reference:http://blog.csdn.net/qq273681448/article/details/75007828

前言

最近,为了方便对命令行过敏的测试或开发人员,我决定部署一个可视化的管理平台来管理docker,在我重装十几次系统(当然,只是虚拟机镜像克隆),对比之后,终于选择了一款心仪的管理平台。

部署docker环境

安装/升级你的Docker环境,建议使用过阿里云的镜像仓库下载:mirrors.aliyun.com/help/docker-engine
或执行以下命令:

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
     
     
     
     
  • 1

另外,建议使用阿里云的镜像加速,以方便后期pull 镜像。申请个人唯一加速地址https://cr.console.aliyun.com/
通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://***.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
     
     
     
     
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

DockerUI

DockerUI基于Docker API,提供等同Docker命令行的大部分功能。

部署

[root@localhost ~]# docker pull uifd/ui-for-docker 
Using default tag: latest
latest: Pulling from uifd/ui-for-docker
841194d080c8: Pull complete 
Digest: sha256:fe371ff5a69549269b24073a5ab1244dd4c0b834cbadf244870572150b1cb749
Status: Downloaded newer image for uifd/ui-for-docker:latest
[root@localhost ~]# 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
ac85040b8a9f2f203c22ba2e4d90a830e31d89a1d6ce77579a7b95de5da51e01

     
     
     
     
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

拉取镜像

docker pull uifd/ui-for-docker 

     
     
     
     
  • 1
  • 2

启动容器

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 

     
     
     
     
  • 1
  • 2

界面

打开ip:9000,首页:
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第1张图片
容器管理:
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第2张图片
容器网络,这里可以显示容器与容器之间的关系。
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第3张图片
容器管理:
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第4张图片

总结

优点:

  1. 支持容器管理
  2. 支持镜像管理
  3. 基于docker api,自身也是一个容器。
  4. 稳定性高
  5. 可动态显示显示容器之间关系图
  6. 容器管理,增加端口映射,增加系统变量、映射目录等

缺点:

  1. 没有登录验证,因为没有登录体系,目前解决办法是,只开放本地访问,或者通过TLS来对权限进行控制。
  2. 无法分配某容器给某用户。
  3. 不支持多主机。
  4. 不支持集群swarm等
  5. 功能少
  6. 不支持控制台命令

结论

因为没有登录体系,所以很难在公司里流通。因为这样,每个人都可以去控制,即使通过TLS来控制权限,但无法将容器管理权限分配给某个用户,所以最终放弃该平台。

Shipyard

Shipyard是在Docker Swarm的基础上,管理Docker资源,包括容器,镜像,注册表等。

部署

这里以官网自动化部署为例,部署代码如下

curl -sSL https://shipyard-project.com/deploy | bash -s
     
     
     
     
  • 1

注意:这将在端口2375上暴露Docker Engine。如果此节点可以在安全网络之外访问,建议使用TLS。

支持集群,所以可以添加节点:

curl -sSL https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://10.0.0.10:4001 bash -s
     
     
     
     
  • 1

其中上段代码中ip地址,为第一台服务器的ip地址。
结果它硬生生的启动了7个容器,其中2个swarm的容器

CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                                            NAMES
fb81fb51d619        shipyard/shipyard:latest       "/bin/controller -..."   2 minutes ago       Up 37 seconds       0.0.0.0:8080->8080/tcp                           shipyard-controller
e9e462e168ea        swarm:latest                   "/swarm j --addr 1..."   2 minutes ago       Up 2 minutes        2375/tcp                                         shipyard-swarm-agent
8913ed62608d        swarm:latest                   "/swarm m --replic..."   2 minutes ago       Up 2 minutes        2375/tcp                                         shipyard-swarm-manager
ee1e25e0235d        shipyard/docker-proxy:latest   "/usr/local/bin/run"     2 minutes ago       Up 2 minutes        0.0.0.0:2375->2375/tcp                           shipyard-proxy
f10edb7eda1c        alpine                         "sh"                     3 minutes ago       Up 3 minutes                                                         shipyard-certs
6411b4226a6f        microbox/etcd:latest           "/bin/etcd -addr 1..."   3 minutes ago       Up 3 minutes        0.0.0.0:4001->4001/tcp, 0.0.0.0:7001->7001/tcp   shipyard-discovery
eaf008cbebae        rethinkdb                      "rethinkdb --bind all"   3 minutes ago       Up 3 minutes        8080/tcp, 28015/tcp, 29015/tcp                   shipyard-rethinkdb
     
     
     
     
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

增加节点的话,节点机器会自动运行5个容器,不得不说功能强大,还是有代价的。

界面

容器列表
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第5张图片
容器详情
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第6张图片
容器监控
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第7张图片
容器控制台
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第8张图片

总结

优点:

  1. 支持镜像管理、容器管理。
  2. 支持控制台命令
  3. 容器资源消耗监控
  4. 支持集群swarm,可以随意增加节点
  5. 支持控制用户管理权限,可以设置某个容器对某个用户只读、管理权限。
  6. 有汉化版

缺点

  1. 启动容器较多,占用每个节点的一部分资源
  2. 兼容性性不高,可能是我自身原因,经常打不开首页。

结论

总体上讲Shipyard功能强大,实用型高,支持集群,支持容器权限分配,是公司不二之选,但是考虑到暂时经常打不开首页,且占用每台服务器较多资源,暂时列为备选方案。

Portainer

Portainer是一款轻量级docker容器管理平台,占用资源少,支持集群,支持权限分配。

部署

docker run -d -p 9000:9000  -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

部署Portainer来管理Swarm群集,也可以在Docker群集中直接部署Portainer作为服务。

docker service create \
--name portainer \
--publish 9000:9000 \
--constraint 'node.role == manager' \
--mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \
portainer/portainer \
-H unix:///var/run/docker.sock
     
     
     
     
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

界面

首页面
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第9张图片
镜像管理
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第10张图片
用户管理
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第11张图片
容器监控
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第12张图片
节点管理
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第13张图片
控制台
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第14张图片

总结

优点

  1. 支持容器管理、镜像管理
  2. 轻量级,消耗资源少
  3. 基于docker api,安全性高,可指定docker api端口,支持TLS证书认证。
  4. 支持权限分配
  5. 支持集群

缺点

  1. 功能不够强大。
  2. 容器创建后,无法通过后台增加端口。

结论

虽然Portainer存在一些问题,但已经可以满足基本需求,且支持权限分配,最终我选择了它。

Daocloud

Daocloud 是一个老牌的第三方管理平台,可以自由增加机器节点,功能极其强大。

部署

登录注册https://dashboard.daocloud.io
增加主机节点

curl -sSL https://get.daocloud.io/daomonit/install.sh | sh -s ****密钥 
     
     
     
     
  • 1

界面

容器列表
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第15张图片
容器日志
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第16张图片
容器管理
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第17张图片
可部署多个容器,扩容
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第18张图片
镜像平台
Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)_第19张图片

总结

优点:

  1. 支持镜像管理、容器管理。
  2. 支持控制台命令
  3. 容器资源消耗监控
  4. 支持集群可以随意增加节点
  5. 中文平台
  6. 镜像下载
  7. 容器扩容、管理

缺点

  1. 管理平台无法部署到本地服务器
  2. 部分高级功能收费

结论

因为闭源,且收费,暂且团队放弃它,,但作为自己测试使用,强烈推荐使用它,因为我们点点鼠标即可轻松部署一个强大的管理docker平台。

最终总结

经过对docker管理平台的分析,相信大家一定有了自己的认识,有条件可以自己尝试下部署,如果有新的心得体会或者更好的平台记得告诉我哦。

觉得好的话,记得关注我哦!
掘金:
https://juejin.im/user/57cd55218ac247006459c40c
Github:
https://github.com/qq273681448

你可能感兴趣的:(docker)