Docker可视化界面(Consul+Shipyard+Swarm+Service Discover)部署记录

前面一篇说到了Docker管理工具-Swarm部署记录,基于这个环境,下面记录下Docker可视化界面部署过程:

1)下载相关惊喜

manager-node节点(182.48.115.237)
[[email protected] ~]# docker pull progrium/consul
[[email protected] ~]# docker pull rethinkdb
[[email protected] ~]# docker pull shipyard/shipyard
[[email protected] ~]# docker pull gliderlabs/registrator

node1和node2节点上
[[email protected] ~]# docker pull progrium/consul
[[email protected] ~]# docker pull gliderlabs/registrator

2)启动consul

manager-node节点(182.48.115.237)
[[email protected] ~]# docker run -d -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -p 8600:53 -p 8600:53/udp -h manager-node --restart=always --name=consul progrium/consul -server -bootstrap -ui-dir=/ui -advertise 182.48.115.237 -client 0.0.0.0

----------------------------------------------------------------------------------------------
解释下各个参数:
-d         容器在后台运行, detached mode
--restart=always  重启模式, always 表示永远
-p 8400:8400      映射 consul的 rpc 端口8400
-p 8500:8500      映射到公共 IP 这样方便我们使用 UI 界面.
-p 8600:53/udp    绑定udp 端口53(默认 DNS端口)在 docker0 bridge 地址上.
-advertise 182.48.115.237   服务对外公布的 IP, 这里特意设置为182.48.115.237, 否则 service 会显示为内部的容器的 IP 地址, 这样就访问不到了.
-client 0.0.0.0 consul    监听的地址.

删除consule命令(下面命令中的"consul"是启动consul命令中的--name后面的设置名)
# docker rm -f consul
----------------------------------------------------------------------------------------------

node1节点(182.48.115.238)
[[email protected] ~]# docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node1 --name=consul progrium/consul -server  -join 182.48.115.237 -advertise 182.48.115.238 -client 0.0.0.0

node2节点(182.48.115.239)
[[email protected] ~]# docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node2 --name=consul progrium/consul -server  -join 182.48.115.237 -advertise 182.48.115.239 -client 0.0.0.0

3)安装Swarm+Shipyard

manager-node节点(182.48.115.237)
[[email protected] ~]# docker run -d --restart=always --name shipyard-rethinkdb rethinkdb
[[email protected] ~]# docker run -d -p 3375:3375 --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:3375 consul://182.48.115.237:8500

node1节点(182.48.115.238)
[[email protected] ~]# docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 182.48.115.238:2375 consul://182.48.115.237:8500

node2节点(182.48.115.239)
[[email protected] ~]# docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 182.48.115.239 consul://182.48.115.239:8500

接着再回到manager-node节点上如下操作
[[email protected] web]# docker run -d --restart=always --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 8080:8080 shipyard/shipyard:latest    server -d tcp://swarm:3375

然后就可以在浏览器访问182.48.115.237这台机器的8080端口, 就能看到shipyard的登录页面拉, 默认账户是 admin, 密码shipyard.

4)registrator状态获取

manager-node节点(182.48.115.237)
[[email protected] ~]# docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 182.48.115.237 consul://182.48.115.237:8500

node1节点(182.48.115.238)
[[email protected] ~]# docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 182.48.115.238 consul://182.48.115.238:8500

node2节点(182.48.115.239)
[[email protected] ~]# docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 182.48.115.239 consul://182.48.115.239:8500

参数解释:
-v /var/run/docker.sock:/tmp/docker.sock     映射docker的socket到container中的对应位置, 这样 registration 就能监控有哪些服务启动了.
consul://localhost:8500 consul 绑定到本地的 consul 接口上

打开http://182.48.115.237:8500,访问consul服务

时间: 2024-11-23 21:09:43

Docker可视化界面(Consul+Shipyard+Swarm+Service Discover)部署记录的相关文章

docker swarm 集群及可视化界面的安装及配置

本文是swarm docker集群的实施文档 环境: centos 7 192.168.1.23 swarm-manager rethinkdb controller swarm-agent consul-c1 registrator 192.168.1.45 registrator swarm-agent consul-s3 192.168.1.65 registrator swarm-agent consul-s2 192.168.1.66 registrator swarm-agent c

Docker搭建Portainer可视化界面

为了解决上回说到的问题,在网上找了找 找到了一个 非常有好的可视化界面管理工具. Portainer 是什么东西 (开源轻量级) Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控制台操作.Swarm集群和服务等集中管理和操作.登录用户管理和控制等功能.功能十分全面,基本能满足中小型单位对容器管理的全部需求. 我用到的图形化管理,应用快速部署,时间日志显示,容器控制台操作 (

如何调用docker swarm service的API来创建及更新服务

平衡的推进,先作一个原型吧. #!/usr/bin/env python # -*- coding: utf-8 -*- import requests import json #定义docker swarm的管理节点ip,端口号,API版本,服务名, 服务URL #在后期集成到自动化部署时,需要精简数据结构,完善data, 增加精准判断及空间回收 #API更多用途参考: https://docs.docker.com/engine/api/v1.29/ docker_swarm_ip_port

Docker Swarm集群部署应用

在Docker Swarm集群部署应用 我们过去使用docker run的命令创建容器, 把前面替换成docker service create就行了. 建议搭建一个registry,为所的docker主机提供镜像下载,否则你需要在每个docker主机本地存在容器镜像. 所以搭建一个私有仓库,由私有仓库提供所需要的镜像, 本实验环境中用node1同时作为registry. 拉取本地私有仓库registry,查看registry镜像 基础环境 全部为CentOS7系统,Docker 版本为1.12

Docker 图形界面管理工具 -- Portainer

Portainer(基于 Go)是一个轻量级的管理界面,可让您轻松管理Docker主机或Swarm集群. Portainer的使用意图是简单部署.它包含可以在任何 Docker 引擎上运行的单个容器(Docker for Linux 和 Docker for Windows). Portainer允许您管理 Docker 容器.image.volume.network 等. 它与独立的 Docker 引擎和 Docker Swarm 兼容. Docker 命令安装: docker volume

Docker - 运行 containers 使用在 swarm 模式下创建的 overlay 模式的 network

前言 在Docker engine v1.12, 使用Swarm可以方便的创建overlay模式的网络,但是它只能被swarm下面的service所使用的,相对于container,这个网络是完全隔离的. 在v1.13,运行 containers 时,可以加入之前在swarm模式下自定义的overlay网络啦! 1.  Create swarm in one docker host (172.100.1.17) $ docker swarm init –advertise-address 172

使用ElasticSearch,Kibana,ASP.NET Core和Docker可视化数据

想要轻松地通过许多不同的方式查询数据,甚至是从未预料到的方式?想要以多种方式可视化日志?同时支持基于时间.文本和其他类型的即时过滤器? 借助于 Elastic stack 的卓越性能和可扩展方式的优点,我们将通过两个示例轻松实现. 本文由 DNC Magazine for Developers and Architects 发布. 从这里下载此杂志[PDF] 或 免费订阅本杂志 下载所有以前和当前的版本版本. 在这篇文章中,我将介绍流行的搜索引擎 Elasticsearch,其配套的可视化应用

总结使人进步,可视化界面GUI应用开发总结:Android、iOS、Web、Swing、Windows开发等

可视化界面的软件,是21世纪最主流的应用类型了,黑屏控制台的不适合普通用户. 2004年左右的时候,作为普通网民,接触的自然是可视化,准确是Windows那一套. 那个时候,Microsoft Windows 98,红警,QQ是3个印象深刻的软件. 大学之后,入了行,先后学习了Windows程序设计(C语言API开发).MFC.Java Swing,Html Web,Android和iOS. 总的来说,现在Html web和Java Swing要熟悉一些,Android和iOS的界面在深入学习中

写代码创建数据库,设置位置后比对用可视化界面创建数据库的区别

一.创建数据库 在网上搜了处理方法,稍微改进了一下 create database tttt_1  on PRIMARY (      NAME = test1,      FILENAME='F:\test\test1.mdf',   --此路径必须存在才能建成功    SIZE = 10,      MAXSIZE = UNLIMITED,  --不限制增长    FILEGROWTH = 5  )  LOG ON (      NAME='test1_dat',      FILENAME