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的實現。