一、 Docker Shipyard是什么 ?

shipyard是一个开源的docker管理平台,其特性主要包括:

 支持镜像管理、容器管理。
支持控制台命令
容器资源消耗监控
支持集群swarm,可以随意增加节点
支持控制用户管理权限,可以设置某个容器对某个用户只读、管理权限。
有汉化版

缺点:

 不支持image管理;
不支持container批量操作。
启动容器较多,占用每个节点的一部分资源

 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的实现。

二、安装前准备

系统:Centos7
时间同步
可连接外网,添加yum源
关闭selinux

三安装docker

[root@localhost ~]# yum install docker -y
[root@localhost ~]# docker start docker
[root@localhost ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

四、安装Shipyard master端

1.下载镜像,下载前需先配置加速器,否则下载速度感人......

使用加速器下载官网镜像方法:

1.打开https://dev.aliyun.com/ 链接,按提示申请一个账户

2.点击容器镜像服务,再点击容器加速器按提示设置即可

加速器配置好后开始下载镜像

[root@localhost ~]#docker pull rethinkdb
[root@localhost ~]#docker pull microbox/etcd
[root@localhost ~]#docker pull shipyard/docker-proxy
[root@localhost ~]#docker pull swarm
[root@localhost ~]#docker pull dockerclub/shipyard

2.修改安装脚本,修改为下载中文镜像

a.修改为下载中文镜像
[root@localhost ~]#wget https://shipyard-project.com/deploy
[root@localhost ~]#grep -n shipyard:latest deploy
[root@localhost ~]#sed -i 's/shipyard\/shipyard:latest/dockerclub\/shipyard:latest/g' deploy b.修改端口
#确保8080端口没有被使用,否则要修改脚本
[root@localhost ~]#netstat -tlnp | grep
#修改脚本
[root@localhost ~]#grep -n 'PORT:-8080' deploy
SHIPYARD_PORT=${PORT:-}
#修改为
SHIPYARD_PORT=${PORT:-指定端口}
[root@localhost ~]#sed 's/PORT:-8080/PORT:-8090/g' deploy | grep "PORT:-8090"

3.启动  sh deploy

[root@localhost ~]# sh deploy
Unable to find image 'alpine:latest' locally
Trying to pull repository docker.io/library/alpine ...
latest: Pulling from docker.io/library/alpine
2fdfe1cd78c2: Pulling fs layer
2fdfe1cd78c2: Verifying Checksum
2fdfe1cd78c2: Download complete
2fdfe1cd78c2: Pull complete
Digest: sha256:ccba511b1d6b5f1d83825a94f9d5b05528db456d9cf14a1ea1db892c939cda64
Deploying Shipyard
-> Starting Database
-> Starting Discovery
-> Starting Cert Volume
-> Starting Proxy
-> Starting Swarm Manager
-> Starting Swarm Agent
-> Starting Controller
Waiting for Shipyard on 192.168.0.104: Shipyard available at http://192.168.0.104:8080
Username: admin Password: shipyard

根据提示信息 访问   http://192.168.0.104:8080 ,用户名和密码为admin:shipyard

注:删除命令  cat deploy | ACTION=remove bash

4.访问Shipyard

输入账号密码登录

 5.添加node节点(node节点需要安装docker并启动)

[root@localhost ~]# curl https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://192.168.0.104:4001 bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
:: :: --:--:--
Adding Node
-> Starting Cert Volume
Unable to find image 'alpine:latest' locally
Trying to pull repository docker.io/library/alpine ...
latest: Pulling from docker.io/library/alpine
2fdfe1cd78c2: Pulling fs layer
2fdfe1cd78c2: Verifying Checksum
2fdfe1cd78c2: Download complete
2fdfe1cd78c2: Pull complete
Digest: sha256:ccba511b1d6b5f1d83825a94f9d5b05528db456d9cf14a1ea1db892c939cda64
-> Starting Proxy
Unable to find image 'shipyard/docker-proxy:latest' locally
Trying to pull repository docker.io/shipyard/docker-proxy ...
latest: Pulling from docker.io/shipyard/docker-proxy
8f4ec95ceaee: Pulling fs layer
ac77a345f217: Pulling fs layer
43039e3ef672: Pulling fs layer
a3ed95caeb02: Pulling fs layer
a3ed95caeb02: Waiting
43039e3ef672: Verifying Checksum
43039e3ef672: Download complete
a3ed95caeb02: Verifying Checksum
a3ed95caeb02: Download complete
ac77a345f217: Verifying Checksum
ac77a345f217: Download complete
8f4ec95ceaee: Verifying Checksum
8f4ec95ceaee: Download complete
8f4ec95ceaee: Pull complete
ac77a345f217: Pull complete
43039e3ef672: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:da6bbd1a145581a940d44940cce0f43705d7f8ec552a4e97e77104ec1b6dc3d1
-> Starting Swarm Manager
Unable to find image 'swarm:latest' locally
Trying to pull repository docker.io/library/swarm ...
latest: Pulling from docker.io/library/swarm
dd72058debf0: Pulling fs layer
cb543654edaf: Pulling fs layer
44212202dc6d: Pulling fs layer
44212202dc6d: Verifying Checksum
44212202dc6d: Download complete
cb543654edaf: Verifying Checksum
cb543654edaf: Download complete
dd72058debf0: Retrying in seconds
dd72058debf0: Retrying in seconds
dd72058debf0: Retrying in seconds
dd72058debf0: Retrying in seconds
dd72058debf0: Retrying in second
dd72058debf0: Verifying Checksum
dd72058debf0: Download complete
dd72058debf0: Pull complete
cb543654edaf: Pull complete
44212202dc6d: Pull complete
Digest: sha256:c97a27b020ae4439432c842769d8e731661d5987962e33004114e4aba9d03b4c
-> Starting Swarm Agent
Node added to Swarm: 192.168.0.106

提示node添加成功,IP为192.168.0.106,我们在shipyard上查看一下

点击节点管理,192.168.0.106已结添加完成

 

查看容器列表:

容器部署:

其他:

#停止运行镜像
[root@node- ~]# docker stop shipyard-proxy shipyard-certs shipyard-discovery shipyard-rethinkdb shipyard-swarm-agent shipyard-swarm-manager shipyard-controller #启动运行的镜像
[root@node- ~]# docker start shipyard-proxy shipyard-certs shipyard-discovery shipyard-rethinkdb shipyard-swarm-agent shipyard-swarm-manager shipyard-controller #删除shipyard(在节点机上执行,就会将节点从shipyard管理里踢出)
# curl http://dockerclub.net/public/script/deploy | ACTION=remove bash -s ==> 中文版
# curl -sSL https://shipyard-project.com/deploy | ACTION=remove bash -s ==> 英文版
 

Centos下安装Docker集群管理工具Shipyard的更多相关文章

  1. 安装memcache集群管理工具

    安装memcache集群管理工具magent 一.安装libevent tar xf libevent--stable.tar.gz cd libevent- ./configure --prefix ...

  2. Docker集群管理工具 - Kubernetes 部署记录 (运维小结)

    一.  Kubernetes 介绍 Kubernetes是一个全新的基于容器技术的分布式架构领先方案, 它是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernete ...

  3. Docker集群管理(一)—— 基础docker+swarm+shipyard

    目的 学习docker的集群管理,摸索出高可用的docker微服务架构方案.本篇文章只初步的了解下swarm(docker新版已集成了swarm)的使用,了解docker的发现服务的基础方法(dock ...

  4. docker集群管理之kubernetes

    一.简介 kubernetes又叫做k8s,是Google开发的一款开源的docker集群管理工具,在这里对它的“发家史”,我不做过多的阐述,有时间大家可以自己去百度一下: 下面我要讲的就是容易混淆的 ...

  5. 在CentOS上安装ZooKeeper集群

    一共准备3个CentOS虚拟机 172.16.9.194 172.16.9.195 172.16.9.196 上传zookeeper-3.3.6.tar.gz到服务器并解压,3台服务器的目录结构如下 ...

  6. Kafka集群管理工具kafka-manager的安装使用

    一.kafka-manager简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作.具体支持以下内容: 管理多个集群 ...

  7. Linux Kafka集群管理工具kafka-manager的安装使用

    一.kafka-manager简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作.具体支持以下内容: 管理多个集群 ...

  8. docker的集群管理工具

    docker 集群管理三剑客: docker compose: Compose 是用于定义和运行多容器 Docker 应用程序的工具.通过 Compose,您可以使用 YML 文件来配置应用程序需要的 ...

  9. Elasticsearch集群管理工具head插件安装

    Elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,你可以通过插件把它集成到es.或直接下载源码,在本地打开index.html ...

随机推荐

  1. struts2+dojo实现datagrid动态刷新

    实现一个普通的数据库查询功能,参考了这个帖子:http://stackoverflow.com/questions/5499453/how-to-refresh-datagrid 需要注意的是动态创建 ...

  2. Apache Kafka监控之KafkaOffsetMonitor

    转载自:http://www.cnblogs.com/Leo_wl/p/4564699.html 1.概述 前面给大家介绍了Kafka的背景以及一些应用场景,并附带上演示了Kafka的简单示例.然后, ...

  3. MySQL 5.7 Invalid default value for 'CREATE_TIME'报错的解决方法

    出处:http://blog.itpub.net/15498/viewspace-2136006/ 由于数据库的升级,今天在执行从MySQL 5.6导出来的SQL文件时报错: mysql> so ...

  4. [转]在Eclipse中搭建Python开发环境

    在Eclipse中搭建Python开发环境 来自: http://hi.baidu.com/hqwfreefly/blog/item/2543181d0afd9604314e150e.html 前言 ...

  5. ThinkPHP 介绍及安装 -1

    一.ThinkPHP的介绍 MVC M - Model 模型                工作:负责数据的操作 V - View  视图(模板)        工作:负责前台页面显示 C - Con ...

  6. google使用的开源的工具类Thumbnailator图像处理

    maven依赖 <dependency>     <groupId>net.coobird</groupId>     <artifactId>thum ...

  7. java线程实现的四种方式

    java多线程的实现可以通过以下四种方式 1.继承Thread类,重写run方法 2.实现Runnable接口,重写run方法 3.通过Callable和FutureTask创建线程 4.通过线程池创 ...

  8. hadoop fs、hadoop dfs与hdfs dfs的区别

    不多说,直接上干货! hadoop fs:    使用面最广,可以操作任何文件系统. hadoop dfs与hdfs dfs :   只能操作HDFS文件系统相关(包括与Local FS间的操作),前 ...

  9. (转载)java list排序

    1.简介 这个和数组的排序又不一样了. 其实Java针对数组和List的排序都有实现,对数组而言,你可以直接使用Arrays.sort,对于List和Vector而言,你可以使用Collections ...

  10. Java-Runoob-高级教程-实例-数组:13. Java 实例 – 数组交集

    ylbtech-Java-Runoob-高级教程-实例-数组:13. Java 实例 – 数组交集 1.返回顶部 1. Java 实例 - 数组交集  Java 实例 以下实例演示了如何使用 reta ...