文档章节

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

轻飞扬
 轻飞扬
发布于 2017/08/02 15:24
字数 1592
阅读 65
收藏 0

前言

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

部署docker环境

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

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

另外,建议使用阿里云的镜像加速,以方便后期pull 镜像。申请个人唯一加速地址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

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

拉取镜像

docker pull uifd/ui-for-docker 

启动容器

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 

界面

打开ip:9000,首页:


容器管理:


容器网络,这里可以显示容器与容器之间的关系。


容器管理:

 

总结

优点:

  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

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

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

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

其中上段代码中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

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

界面

容器列表


容器详情


容器监控


容器控制台

 

总结

优点:

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

缺点

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

结论

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

Portainer

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

部署

docker run -d -p 9000:9000 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. 基于docker api,安全性高,可指定docker api端口,支持TLS证书认证。
  4. 支持权限分配
  5. 支持集群

缺点

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

结论

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

Daocloud

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

部署

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

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

界面

容器列表


容器日志


容器管理


可部署多个容器,扩容


镜像平台

 

总结

优点:

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

缺点

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

结论

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

最终总结

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

本文转载自:https://juejin.im/post/596587a56fb9a06baa63d435

共有 人打赏支持
轻飞扬
粉丝 1
博文 10
码字总数 4138
作品 0
南京
Docker容器学习梳理--web管理工具(1)

DockerUI优点: 1)支持container批量操作; 2)支持image管理(虽然比较薄弱) DockerUI缺点: 不支持多主机。 下面记录在DockerUI管理环境的部署过程: 1)首先拉去dockerUI镜像 如下: [r...

有功夫
07/03
0
0
docker swarm集群及其UI部署

一、规划 ①swarm01作为manager节点,swarm02和swarm03作为worker节点。 # cat /etc/hosts127.0.0.1 localhost192.168.139.175 swarm01 192.168.139.176 swarm02 192.168.139.177 swarm03 ②......

心远何方
06/27
0
0
Docker的WEB管理界面shipyard

Docker 的命令行就已经很好用了,如果非要加上基于 Web 的管理界面的话也有一些选择,如 DockerUI (Angular.js), Dockland (Ruby), Shipyard (Python/Django) 等,不过目前来看 Shipyard 项目...

呆头呆脑
2013/11/21
0
7
我是如何重构整个研发项目,促进自动化运维DevOps的落地?

为了这篇文章,我前后写了将近十篇文章铺垫,才将这篇整体重构思想引出。 背景 先说下背景,我们是一家小公司,虽然打着做产品的旗帜,但是每个客户都有大量的个性化功能,这里指各个客户的j...

邵磊
2017/10/14
0
0
可持续自动化构建微服务(8)搭建 Portainer 可视化界面

第八章 安装 Protainer 8、 搭建 Portainer 可视化界面 8.1 swarm 主节点操作 (192.168.33.21) 8.1.1 下载 portainer 镜像 命令:docker pull portainer/portainer 8.1.2 启动 portainer 命令......

jato333
05/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea新建springCloud项目(5)- 订单服务

1.创建订单api,如下: 2.创建订单实现逻辑 3.新建订单、订单商品表 -- 订单 create table `order_master` ( `order_id` varchar(32) not null, `buyer_name` varchar(32) not null comment......

monroeCode
21分钟前
1
1
游戏开发经验谈(二):对战类全球服游戏的设计与实现

上篇文章《游戏开发经验谈(一):游戏架构里隐藏的五个坑及其应对方案》,我们主要讲解了游戏架构设计当中隐藏的一些坑及其应对方案,错过的小伙伴可以回溯之前的内容。本期内容,将会重点介...

UCloudTech
31分钟前
0
0
Mysql基本语法

一.联合主键 drop table CONTENT_AND_CATALOG;CREATE TABLE `tobebetter`.`CONTENT_AND_CATALOG` ( `ID` VARCHAR(120) NOT NULL , `CONTENT_ID` VARCHAR(120) , `CA......

我是菜鸟我骄傲
32分钟前
0
0
179. centos7 安装mariadb

1. centos7 中安装mariadb 1.1 执行安装 centos7 自带了mariadb yum -y install mariadb mariadb-server 1.2 启动mariadb systemctl start mariadb 1.3 设置开机启动 systemctl enable maria......

Lucky_Me
39分钟前
0
0
【AI实战】动手训练自己的目标检测模型(YOLO篇)

在前面的文章中,已经介绍了基于SSD使用自己的数据训练目标检测模型(见文章:手把手教你训练自己的目标检测模型),本文将基于另一个目标检测模型YOLO,介绍如何使用自己的数据进行训练。 ...

雪饼
46分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部