一、 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. (转)mysql创建表时反引号的作用

    试用navicat工具查看现网mysql建表语句时,发现表名和字段名都是反引号引起来的 CREATE TABLE `tab_notice_title_tv` ( `i_id` int(11) NOT ...

  2. AI三巨头获2018年图灵奖!

    ACM 宣布,2018 年图灵奖获得者是号称深度学习三巨头的 Yoshua Bengio, Yann LeCun 和 Geoffrey Hinton,得奖理由是:他们在概念和工程上取得的巨大突破,使得 ...

  3. ML(附录2)——最小二乘法

    参见  :多变量微积分笔记2——最小二乘法

  4. spring mvc 请求参数日期格式化 代码

    package com.sbl.pay.subaccount.converter; import java.text.DateFormat; import java.text.SimpleDateFo ...

  5. Packet for query is too large (1660 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.

    原因是mysql 默认允许的 数据报包 是 1M  设置大一些就可以了 centos 下面  /ect/my.cnf 文件里面 加入或者修改 下面的参数 [mysqld] max_allowed_pa ...

  6. django用mysql数据库出现的问题解决

    blog添加不了文章!! 做了个程序,将数据库迁移到服务器之后,发现一个奇怪的错误.Field 'id' doesn't have a default value.查看了一下,程序是没问题的,但是这是 ...

  7. shell 变量的默认值

    默认值表达式1 ${a-defaultvalue} a如果没有定义,则表达式返回默认值,否则返回a的值: demo1 a="" ret1=${a-"/usr/local& ...

  8. hanlp源码解析之中文分词算法详解

    词图 词图指的是句子中所有词可能构成的图.如果一个词A的下一个词可能是B的话,那么A和B之间具有一条路径E(A,B).一个词可能有多个后续,同时也可能有多个前驱,它们构成的图我称作词图. 需要稀疏2维 ...

  9. Elasticsearch的数据导出和导入操作(elasticdump工具),以及删除指定type的数据(delete-by-query插件)

    Elasticseach目前作为查询搜索平台,的确非常实用方便.我们今天在这里要讨论的是如何做数据备份和type删除.我的ES的版本是2.4.1. ES的备份,可不像MySQL的mysqldump这么 ...

  10. wifi实现串口透传

    环境: 串口服务器Ip:172.16.1.11 串口客户机ip:172.16.1.12 一.网络连接示意图 二.串口服务器的配置 参考:ser2net的编译及测试 三.串口客户端的配置 实际上这是一个 ...