天天看點

docker web-GUI DockerUI和Shipyard對比DockerUI和Shipyard對比DockerUIShipyard了解Shipyard

DockerUI和Shipyard對比

相似

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

web頁面檢視和管理容器和鏡像,均能批量管理容器的生命周期管理

差異

dockerui能修改容器配置

docker web-GUI DockerUI和Shipyard對比DockerUI和Shipyard對比DockerUIShipyard了解Shipyard

dockerui能管理和新增網絡

docker web-GUI DockerUI和Shipyard對比DockerUI和Shipyard對比DockerUIShipyard了解Shipyard

dockerui能新增volume

docker web-GUI DockerUI和Shipyard對比DockerUI和Shipyard對比DockerUIShipyard了解Shipyard

Shipyard能建立容器

docker web-GUI DockerUI和Shipyard對比DockerUI和Shipyard對比DockerUIShipyard了解Shipyard

Shipyard能拉取鏡像

docker web-GUI DockerUI和Shipyard對比DockerUI和Shipyard對比DockerUIShipyard了解Shipyard

Shipyard能多主機管理,支援節點動态叢集,可擴充節點的規模(swarm、etcd方案)

docker web-GUI DockerUI和Shipyard對比DockerUI和Shipyard對比DockerUIShipyard了解Shipyard

Shipyard能管理倉庫

docker web-GUI DockerUI和Shipyard對比DockerUI和Shipyard對比DockerUIShipyard了解Shipyard

Shipyard能實作容器的伸縮、終端、stats等功能

docker web-GUI DockerUI和Shipyard對比DockerUI和Shipyard對比DockerUIShipyard了解Shipyard

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