您好,登錄后才能下訂單哦!
一、概述
Docker圖形頁面管理工具基本常用的有三種: DOCKER UI,Shipyard,Portainer。相對而言,Shipyard最強大,其次是Portainer,最后是Docker ui。
Shipyard(github)是建立在docker集群管理工具Citadel之上的可以管理容器、主機等資源的web圖形化工具,包括core和extension兩個版本,core即shipyard主要是把多個 Docker host上的 containers 統一管理(支持跨越多個host),extension即shipyard-extensions添加了應用路由和負載均衡、集中化日志、部署等;
Shipyard是在Docker Swarm實現對容器、鏡像、docker集群、倉庫、節點進行管理的web系統。
DockerUI和Shipyard功能
1、DockerUI的優點
1)可以對運行著的容器進行批量操作
2)在容器網絡中-會顯示容器與容器間的網絡關系
3)在Volumes中顯示了所有掛載目錄
DockerUI一個致命的缺點:不支持多主機.試想一下,如果有N臺docker主機時-我就需要一臺臺的用dockerui進行管理,想想都覺得麻煩。就單臺主機而言,dockerui是一款不錯的管理工具。
2、Shipyard功能
是一個集成管理docker容器、鏡像、Registries的系統,它可以簡化對橫跨多個主機的Docker容器集群進行管理. 通過Web用戶界面,你可以大致瀏覽相關信息,比如你的容器在使用多少處理器和內存資源、在運行哪些容器,還可以檢查所有集群上的事件日志。
其特性主要包括:
1)支持節點動態集群,可擴展節點的規模(swarm、etcd方案)
2)支持鏡像管理、容器管理、節點管理等功能
3)可視化的容器管理和監控管理
4)在線容console終端
Shipyard幾個概念
1)engine
一個shipyard管理的docker集群可以包含一個或多個engine(引擎),一個engine就是監聽tcp端口的docker daemon。shipyard管理docker daemon、images、containers完全基于Docker API,不需要做其他的修改。另外,shipyard可以對每個engine做資源限制,包括CPU和內存;因為TCP監聽相比Unix socket方式會有一定的安全隱患,所以shipyard還支持通過SSL證書與docker后臺進程安全通信。
2)rethinkdb
RethinkDB是一個shipyard項目的一個docker鏡像,用來存放賬號(account)、引擎(engine)、服務密鑰(service key)、擴展元數據(extension metadata)等信息,但不會存儲任何有關容器或鏡像的內容。
Shipyard生態
shipyard是由shipyard控制器以及周圍生態系統構成,以下按照deploy啟動順序進行介紹(下面幾個就是shipyard使用腳本安裝后,啟動的幾個容器名)
1)RethinkDB
deploy首先啟動的就是RethinkDB容器,shipyard采用RethinkDB作為數據庫來保存用戶等信息
2)Discovery
為了使用Swarm,我們需要一個外部的密鑰值存儲群容器,shipyard默認是采用了etcd。
3)shipyard_certs
證書管理容器,實現證書驗證功能
4)Proxy
默認情況下,Docker引擎只監聽Socket,我們可以重新配置引擎使用TLS或者使用一個代理容器,轉發請求從TCP到Docker監聽的UNIX Socket。
5)Swarm Manager
Swarm管理器
6)Swarm Agent
Swarm代理,運行在每個節點上。
7)Controller
shipyard控制器,Remote API的實現和web的實現。
二、Shipyard搭建
1、環境準備
(1)系統版本
CentOS Linux release 7.5.1804 (Core)
(2)網卡信息
inet 172.160.45.128 netmask 255.255.255.0 broadcast 172.160.45.25
(3)關閉防火墻和seliunx服務
(4)docker-ce安裝
Docker version 18.06.3-ce, build d7080c1
2、下載相關依賴鏡像(這些鏡像如果不提前下載,則在下面一鍵安裝部署時會自動下載,不過要等待一段時間. 所以最好提前下載,一鍵部署時就很快了)
# docker pull rethinkdb
# docker pull microbox/etcd
# docker pull shipyard/docker-proxy
# docker pull swarm
# docker pull dockerclub/shipyard
3.1、官方安裝:
如何安裝shipyard中文版
curl http://dockerclub.net/deploy | bash -s
3.2、執行腳本
# sh shipyard-deploy
部署后,可以看到相應的shipyard容器已正常運行
最后訪問http://172.160.45.128:8080,使用admin/shipyard用戶名和密碼登錄即可.
如果想要修改web訪問端口,則操作如下:
# cat shipyard-deploy |grep 8080
echo " PORT: specify the listen port for the controller (default: 8080)"
SHIPYARD_PORT=${PORT:-8080}
比如將腳本中默認的8080端口改為80端口
# sed -i 's/8080/80/g' shipyard-deploy
然后重新部署即可
4.1、刪除Shipyard環境操作
# cat shipyard-deploy |ACTION=remove bash
4.2如何刪除shipyard中文版
curl http://dockerclub.net/deploy | ACTION =remove bash -s
5、Shipyard添加其他節點主機(centos7.X系統的主機)的操作記錄
比如將172.16.60.220機器節點加入到上面的shipyard管理中.
則需要在被加入節點機器上如下操作:
1) 在被加入的節點上按照上面的最新地址下載shipyard-deploy
# chmod +x shipyard-deploy
2) 執行下面操作 (注意下面etcd地址要寫成shipyard部署機的ip地址. 首次執行時會自動下載鏡像,需要等待一段時間)
# cat shipyard-deploy | ACTION=node DISCOVERY=etcd://172.160.45.128:4001 bash
注意,添加節點時,上面一鍵腳本需要運行在被添加的節點主機上,而不是shipyard部署節點的機器上;然后登錄http://172.160.45.128:8080,在"容器管理"-"主機節點"中看到添加的節點信息了.
補充知識:
Nginx做域名轉發: 在nginx配置文件http塊里添加如下代碼:
upstream shipyard {
server 172.160.45.128:8080;
}
server {
listen 80;
server_name kevin.shipyard.com;
location / {
proxy_pass http://shipyard;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
以下三行代碼為nginx做WebSockets跳轉否則,在執行shell時會報400錯誤
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
利用shipyard部署swarm集群及管理容器, 則swarm-manage為shipyard部署機, 其他swarm-node節點則為添加到shipyard管理中的節點.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。