DockerUI和Shipyard对比

相似

基于Docker API,提供等同Docker命令行的大部分功能,支持container管理,image管理。

web页面查看和管理容器和镜像,均能批量管理容器的生命周期管理

差异

dockerui能修改容器配置

dockerui能管理和新增网络

dockerui能新增volume

Shipyard能创建容器

Shipyard能拉取镜像

Shipyard能多主机管理,支持节点动态集群,可扩展节点的规模(swarm、etcd方案)

Shipyard能管理仓库

Shipyard能实现容器的伸缩、终端、stats等功能

DockerUI

优点

支持容器批量操作,可以修改容器配置(需要重启容器),查看日志、top等命令
支持image管理
支持网络管理,可以创建、修改等
支持镜像管理
支持查看拓扑

缺点

不支持多主机
不支持容器创建
不支持容器终端

部署

docker run -itd --memory 1g --cpuset-cpus=0 --name dockerui --hostname dockerui -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker

http://宿主机IP:9000

Shipyard

Shipyard是在Docker Swarm实现对容器、镜像、docker集群、仓库、节点进行管理的web系统。

特性

Shipyard是完全基于Docker API,支持container管理、engine管理(一个engine就是监听tcp端口的docker daemon)。

优点

支持多主机;
容器管理:除了管理生命周期外,还支持批量、终端、log、新增、伸缩、stats等等。
镜像管理:支持修改tag、pull等
新增仓库

缺点

不支持修改容器配置。

部署

Shipyard是一款开源的图形化的Docker管理工具,现在官方有了自动安装脚本,使用非常方便。

服务器端

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

Shipyard 启用了7个容器,默认访问端口是8080,默认用户名和密码是admin 和 shipyard

节点

加入服务器

curl -sSL https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://服务器端地址:4001 bash -s

退出服务器

curl -sSL https://shipyard-project.com/deploy | ACTION=remove bash -s

了解Shipyard

几个概念

engine

一个shipyard管理的docker集群可以包含一个或多个engine(引擎),一个engine就是监听tcp端口的docker daemon。

shipyard管理docker daemon、images、containers完全基于Docker API,不需要做其他的修改。

另外,shipyard可以对每个engine做资源限制,包括CPU和内存;

因为TCP监听相比Unix socket方式会有一定的安全隐患,所以shipyard还支持通过SSL证书与docker后台进程安全通信。

rethinkdb

RethinkDB是一个shipyard项目的一个docker镜像,用来存放账号(account)、引擎(engine)、服务密钥(service key)、

扩展元数据(extension metadata)等信息,但不会存储任何有关容器或镜像的内容。

Shipyard组件

shipyard是由shipyard控制器以及周围生态系统构成,以下按照deploy启动顺序进行介绍(下面几个就是shipyard使用脚本安装后,启动的几个容器名)

RethinkDB

deploy首先启动的就是RethinkDB容器,shipyard采用RethinkDB作为数据库来保存用户等信息

Discovery

为了使用Swarm,我们需要一个外部的密钥值存储群容器,shipyard默认是采用了etcd。

shipyard_certs

证书管理容器,实现证书验证功能

Proxy

默认情况下,Docker引擎只监听Socket,我们可以重新配置引擎使用TLS或者使用一个代理容器,转发请求从TCP到Docker监听的UNIX Socket。

Swarm Manager

Swarm管理器

Swarm Agent

Swarm代理,运行在每个节点上。

Controller

shipyard控制器,Remote API的实现和web的实现。

[置顶] docker web-GUI DockerUI和Shipyard对比的更多相关文章

  1. [置顶] Docker学习总结(5)——超实用Docker入门学习教程

    Docker是什么 Docker是一种容器技术,它可以将应用和环境等进行打包,形成一个独立的,类似于iOS的APP形式的"应用",这个应用可以直接被分发到任意一个支持Docker的 ...

  2. [置顶] Docker学习总结(7)——云端基于Docker的微服务与持续交付实践

    本文根据[2016 全球运维大会•深圳站]现场演讲嘉宾分享内容整理而成 讲师简介 易立 毕业于北京大学,获得学士学位和硕士学位:目前负责阿里云容器技术相关的产品的研发工作. 加入阿里之前,曾在IBM中 ...

  3. [置顶] Java Web开发教程来袭

    Java Web,是用Java技术来解决相关web互联网领域的技术总和.web包括:web服务器和web客户端两部分.Java在客户端的应用有java applet不过现在使用的很少,Java在服务器 ...

  4. [置顶] Java Web学习总结(24)——SSM(Spring+SpringMVC+MyBatis)框架快速整合入门教程

    1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One  ...

  5. [置顶] java web 动态服务器

    写了一个java web 动态服务器,主要通过内部类来实现,动态类使用了外部类,采用了 classforname 实例化,动态类的构造方法不能带参数, 效果都出来了,分享给有需要的 朋友.判断做的不够 ...

  6. [置顶] 一个Web报表项目的性能分析和优化实践(一):小试牛刀,统一显示SQL语句执行时间

    最近,在开发和优化一个报表型的Web项目,底层是Hibernate和MySQL. 当报表数据量大的时候,一个图表要花4秒以上的时间. 以下是我的分析和体会.  1.我首先需要知道哪些函数执行了多少时间 ...

  7. [置顶] Docker学习总结(3)——Docker实战之入门以及Dockerfile(三)

    应用镜像 csphere/wordpress:4.2 # cd docker-training/wordpress/ # ls -a . license.txt wp-config-sample.ph ...

  8. [置顶] Docker学习总结(2)——Docker实战之入门以及Dockerfile(二)

    csphere/php-fpm:5.4 # cd docker-training/php-fpm/ # ls Dockerfile nginx_nginx.conf supervisor_nginx. ...

  9. [置顶] Docker学习总结(1)——Docker实战之入门以及Dockerfile(一)

    一.Docker是什么? 首先Docker是软件工业上的集装箱技术 回顾,在没有集装箱出现以前,传统运输行业中,会存在这些问题: 在运输过程中,货物损坏 装卸.运输货物,效率低下 运输手续繁多及运输环 ...

随机推荐

  1. CPU封装技术介绍

    所谓“CPU封装技术”是一种将集成电路用绝缘的塑料或陶瓷材料打包的技术.以CPU为例,我们实际看到的体积和外观并不是真正的CPU内核的大小和面貌,而是CPU内核等元件经过封装后的产品. CPU封装对于 ...

  2. 【bzoj3561】DZY Loves Math VI 莫比乌斯反演

    题目描述 给定正整数n,m.求   输入 一行两个整数n,m. 输出 一个整数,为答案模1000000007后的值. 样例输入 5 4 样例输出 424 题解 莫比乌斯反演 (为了方便,以下公式默认$ ...

  3. Android应用如何打包?

    android app开发结束后,就需要对app进行打包.部署与发布了,那对于android初学者而言,如何对apk进行打包呢?今天小编就为大家分享一二,一起来看看吧~~ aapt package - ...

  4. C# 在子窗体调用父窗体的值(转)

    1.在父窗体中 public delegate void SetVisiableHandler();//定义委托类型 注意此委托定义在namespace下一级,在form类外 private void ...

  5. js,将日期时分秒等格式化和转化

    1.将js Date对象格式化为指定格式,添加一个原型方法 /** * 返回指定format的string * format eg:'yyyy-MM-dd hh:mm:ss' **/ Date.pro ...

  6. openGL深度缓冲区问题

    http://zhidao.baidu.com/question/368299839.html&__bd_tkn__=6aa9196c746cd3357f1eec74aeb127b395029 ...

  7. /proc/sys/shm/drop_caches

    author:skate time:2012/02/22 手工释放linux内存--/proc/sys/vm/drop_cache 转载一篇文章 linux的内存查看: [root@localhost ...

  8. Activity管理类

    package com.yunpai.tms.application; import android.app.Activity; import android.app.ActivityManager; ...

  9. Java解决跨域的方案

    在后台加上,在数据返回之前添加 response.setHeader("Access-Control-Allow-Origin","*"); 就可以了,前台不用 ...

  10. 关于java1.7集合源码阅读

    工作中每天都会和java集合打交道,虽然以前也看过jdk源码的实现,但有些东西时间长了还是会遗忘,或者有些实现在新版本中有了新的变化,俗话说"温故而知新",所以打算再阅读一下相关源 ...