Docker可視化管理工具Shipyard安裝與配置


Shipyard簡介

Shipyard是一個集成管理docker容器、鏡像、Registries的系統,它具有以下特點:
1.支持多節點的集成管理
2.可動態加載節點
3.可托管node下的容器

鏡像環境准備

# docker pull rethinkdb
# docker pull microbox/etcd
# docker pull shipyard/docker-proxy
# docker pull swarm 
# docker pull shipyard/shipyard

手動安裝(以本地ip:10.211.55.20為例)

1. 數據存儲(rethinkdb)

docker run -ti -d --name shipyard-rethinkdb rethinkdb

2.服務發現(etcd)

為了啟用Swarm leader選擇,我們必須使用來自Swarm容器的外部鍵值存儲。此處,我們使用Etcd作為服務發現工具。可以選用的服務發現工具還有Consul、Zookeeper等。

docker run -ti -d -p 4001:4001 -p 7001:7001 --name shipyard-discovery microbox/etcd -name discovery

3. Docker代理服務(shipyard/docker-proxy)

默認情況下,Docker引擎只偵聽套接字。 我們可以重新配置引擎以使用TLS,或者您可以使用代理容器。 這是一個非常輕量級的容器,它只是將請求從TCP轉發到Docker監聽的Unix套接字。

docker run  -ti -d -p 2375:2375 --hostname=$HOSTNAME --name shipyard-proxy -v /var/run/docker.sock:/var/run/docker.sock -e PORT=2375 shipyard/docker-proxy

4.Swarm管理節點(swarm manager)

  • 將IP-OF-HOST替換為對應的ip;
  • 將SWARM-INNER-PORT換成對應的端口,默認2375.
  • 將SWARM-MAP-PORT換成映射到host機的ip,例如2376
格式:docker run -ti -d --name -p [SWARM-MAP-PORT]:[SWARM-INNER-PORT] shipyard-swarm-manager docker.io/swarm manage --host tcp://0.0.0.0:[SWARM-INNER-PORT] etcd://[IP-OF-HOST]:4001
實例化:docker run -ti -d --name shipyard-swarm-manager swarm manage --host tcp://0.0.0.0:3375 etcd://10.211.55.20:4001

5.Swarm Agent節點將當前docker節點加入到集群中

  • 將IP-OF-HOST替換為對應的ip
  • 將IP-OF-ETCD-HOST換成etcd所在的docker節點ip。
  • 將LOCAL-DOCKER-PORT換成本機docker所監聽的端口,例如2375
格式:docker run -ti -d --name shipyard-swarm-agent docker.io/swarm join --addr [IP-OF-HOST]:[LOCAL-DOCKER-PORT] etcd://[IP-OF-ETCD-HOST]:4001

實例: docker run -ti -d --name shipyard-swarm-agent swarm join --addr 10.211.55.20:2375 etcd://10.211.55.20:4001

6.啟動Shipyard管理工具

 docker run -ti -d --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 8083:8080 shipyard/shipyard server -d tcp://swarm:3375

7.瀏覽器訪問:http://192.168.1.108:8083/ 即可進入鏈接

默認用戶名/密碼 admin/shipyard

防火牆需打開4001端口,否則防火牆會攔住容器。

 

Nginx做域名轉發

在nginx配置文件http塊里添加如下代碼
upstream shipyard {
     server 192.168.1.108:8083;
}
server {
    listen          80;
    server_name     mm.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";

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM