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
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的实现。