Docker集中化web界面管理平台shipyard
来源:互联网 发布:imei校验码算法 编辑:程序博客网 时间:2024/06/07 03:03
Shipyard(github)是建立在docker集群管理工具Citadel之上的可以管理容器、主机等资源的web图形化工具。包括core和extension两个版本,core即shipyard主要是把多个 Docker host上的 containers 统一管理(支持跨越多个host),extension即shipyard-extensions添加了应用路由和负载均衡、集中化日志、部署等。
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后台进程安全通信。
rethinkdb
RethinkDB
是一个shipyard项目的一个docker镜像,用来存放账号(account)、引擎(engine)、服务密钥(service key)、扩展元数据(extension metadata)等信息,但不会存储任何有关容器或镜像的内容。一般会启动一个shipyard/rethinkdb
容器shipyard-rethinkdb-data来使用它的/data
作为数据卷供另外rethinkdb一个挂载,专门用于数据存储。
2. 搭建过程
修改tcp监听
Shipyard 要管理和控制 Docker host 的话需要先修改 Docker host 上的默认配置使其监听tcp端口(可以继续保持Unix socket)。有以下2种方式
sudo docker -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock -d
启动docker daemon。如果为了避免每次启动都写这么长的命令,可以直接在/etc/init/docker.conf
中修改。- 修改
/etc/default/docker
的DOCKER_OPTS
DOCKER_OPTS="-H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock"
。这种方式在我docker version 1.4.1 in ubuntu 14.04上并没有生效。
12345
重启服务$ sudo docker -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock -d验证$ netstat -ant |grep 4243tcp6 0 0 :::4243 :::* LISTEN
启动rethinkdb
shipyard(基于Python/Django)在v1版本时安装过程比较复杂,既可以通过在host上安装,也可以部署shipyard镜像(包括shipyard-agent
、shipyard-deploy
等组件)。v2版本简化了安装过程,启动两个镜像就完成:
1234567
获取一个/data的数据卷$sudo docker run -it -d --name shipyard-rethinkdb-data \--entrypoint /bin/bash shipyard/rethinkdb -l使用数据卷/data启动RethinkDBdocker run -it -P -d --name shipyard-rethinkdb \--volumes-from shipyard-rethinkdb-data shipyard/rethinkdb
部署shipyard镜像
启动shipyard控制器:
12
sudo docker run -it -p 8080:8080 -d --name shipyard \--link shipyard-rethinkdb:rethinkdb shipyard/shipyard
至此已经可以通过浏览器访问http://host:8080
来访问shipyard UI界面了。
第一次run
后,关闭再次启动时直接使用:
12
sudo docker stop shipyard shipyard-rethinkdb shipyard-rethinkdb-datasudo docker start shipyard-rethinkdb-data shipyard-rethinkdb shipyard
图示
登录:
默认用户名/密码为 admin/shipyard
主界面:
Dashboard展示在添加engine时指定的CPU以及内存的使用情况。
容器:
shipyard管理的所有docker主机的所有容器,包括stop和running状态的。可以直接点击DEPLOY按钮来从镜像运行出其他容器,与docker run
的选项几乎相同,可以限制CPU和内存的使用,详见shipyard的containers文档。
容器操作:
可以stop
、start
、restart
容器,通过LOGS
可以看到容器日志输出,SCALE
可以批量(规模化)部署该容器,这个操作与容器的Type属性息息相关。因为shipyard可以管理多个host的docker容器,所以启动一个容器的type可以是:service——可以在具有相同label的engine上运行;unique——一个host上只允许某个镜像的一个实例运行;host——在指定的host上运行容器,启动的时候通过--label host:<host-id>
语法指定docker host。
engine管理:
一个engine就是一个docker daemon,docker daemon下启动着多个containers,可以对engine限制一个整体的CPU和内存限制,shipyard通过TCP端口连接daemon。需要注意的是docker client与server的版本问题:(因为shipyard目前还在快速的完善过程,不同版本的docker应该是向下兼容的)
12
curl -X GET http://172.29.88.223:4243/v1.15/containers/jsonclient and server don't have same version (client : 1.15, server: 1.13)
3. shipyard-cli
目前图形化界面能做的操作其实很少,正在强大的是通过shipyard提供的命令行窗口(称作Shipyard CLI
)进行管理,参考http://shipyard-project.com/docs/usage/cli/
启动命令行交互模式:
sudo docker run --rm -it shipyard/shipyard-cli
使用它甚至可以替代docker客户端。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
sean@seanubt:~$ sudo docker run -it shipyard/shipyard-clishipyard cli> shipyard helpNAME:shipyard - manage a shipyard clusterUSAGE:shipyard [global options] command [command options] [arguments...]VERSION:2.0.8COMMANDS:loginlogin to a shipyard clusterchange-passwordupdate your passwordaccountsshow accountsadd-accountadd accountdelete-accountdelete accountcontainerslist containersinspectinspect containerrunrun a containerstopstop a containerrestartrestart a containerscalescale a containerlogsshow container logsdestroydestroy a containerengineslist enginesadd-engineadd shipyard engineremove-engineremoves an engineinspect-engineinspect an engineservice-keyslist service keysadd-service-keyadds a service keyremove-service-keyremoves a service keyextensionsshow extensionsadd-extensionadd extensionremove-extensionremove an extensionwebhook-keyslist webhook keysadd-webhook-keyadds a webhook keyremove-webhook-keyremoves a webhook keyinfoshow cluster infoeventsshow cluster eventshelp, hShows a list of commands or help for one commandGLOBAL OPTIONS:--help, -hshow help--generate-bash-completion--version, -vprint the version登录shipyardshipyard cli> shipyard loginURL: http://172.29.88.205:8080Username: adminPassword:查看containersshipyard cli> shipyard containers启动一个容器shipyard cli> shipyard run --name nginx:1.7.6 --container-name web_test \--cpus 0.2 \--memory 64 \--type service \--hostname nginx-test \--domain example.com \--link redis:db \--port tcp/172.29.88.205:81:8081 \--port tcp/::8000 \--restart "on-failure:5" \--env FOO=bar \--label dev \查看容器日志(只能接容器ID,暂不能使用容器名)shipyard cli> shipyard logs ff2761d关闭并移除容器shipyard cli> shipyard destroy <container_id>
- Docker集中化web界面管理平台shipyard
- Docker集中化web界面管理平台shipyard
- Docker集中化web界面管理平台shipyard
- Docker集中化web界面管理平台shipyard
- Docker集中化web界面管理平台shipyard
- Docker集中化web界面管理平台shipyard
- Docker集中化web界面管理平台shipyard
- Docker集中化web界面管理平台-Shipyard部署记录
- Docker 的一个 Web 管理界面 Shipyard
- Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)
- Docker的web端管理平台对比(DockerUI 、Shipyard、Portainer、Daocloud)
- 一键安装Docker图形化管理界面-Shipyard
- 用shipyard来管理docker
- Docker学习(12)----搭建Docker+Swarm+consul+registrator+shipyard管理平台
- 两款Docker管理UI:DockerUI & Shipyard
- 安装Docker管理图形管理工具Shipyard
- 两款Docker管理UI:DockerUI & Shipyard
- 两款Docker管理UI:DockerUI & Shipyard
- python和Django创建博客首页视图
- NumPy基础--ndarray
- Leetcode之Move Zeroes 问题
- 哈哈日语 日语入门需要注意的4点
- String 与 int之间的类型转换
- Docker集中化web界面管理平台shipyard
- 阿里云大鱼短信api
- 【深度学习&分布式】Parameter Server 详解
- sql 聚合函数有哪些
- 学习笔记:ES6之Symbol
- poj 2456 Aggressive cows
- 半小时学会LevelDB原理及应用
- 二叉树性质
- note 2