Docker 安装Consul集群

使用windows 环境,Docker desktop community 构建consul集群。

1、docker 容器网络

docker安装后,默认会创建三种网络类型,bridge、host和none,可通过如下命令查看:

sudo docker network ls

NETWORK ID          NAME                DRIVER              SCOPE
32c1b52444f2 bridge bridge local
6a2d84a36162 host host local
cff3a04a41f6 none null local
  • bridge:网络桥接:默认情况下启动、创建容器都是使用该模式,每次容器重启都会按顺序获取对应的ip地址,这就导致每次重启后容器的ip发生变化。
  • none:无指定网络,启动时通过:-network=none 则docker不会分配局域网ip。
  • host:主机网络:docker容器的网络会附属在主机上,两者互通。

2、创建固定ip的容器

  1. 创建自定义网络类型,并指定网段

    docker network create --subnet=192.168.0.0/16 staticnet

--subnet=192.168.0.0/16 子网网段

staticnet 自定义网络类型

再次查看docker 网络类型:docker network ls 会多出来一个自定义的网络类型。

  1. 使用新的网络类型创建并启动容器

udo docker run -it --name userserver --net staticnet --ip 192.168.0.2 mysql:5.7

参数说明:--net 指定网络类型。--ip 指定容器ip(对应网络类型下的网段内)

创建单节点Consul

docker run -d -p 8500:8500 -v /data/consul:/consul/data -e CONSUL_BIND_INTERFACE='eth0' --name=cs1 --net staticnet --ip 192.168.0.2 consul agent -server -bootstrap -ui -node=Server01 -client='0.0.0.0'

参数说明:

-p <hostPort>:<containerPort> 映射容器端口到主机端口

-v <hostDataDir>:<containerDataDir> 卷文件映射

--net <networktype> 指定网络类型这里使用自定以的网络类型

--ip <ipaddress> 指定容器在网络类型下的ip地址

consul ... 开始执行consul的命令

agent -server 表示启动 Agent 进程以consul server模式

agen -client 表示启动 Agent 进程以consul client模式

-bootatrap 表示此节点时server-leader,通常多个server会采用Raft算法选举产生一个leader,剩下的server为follow

-ui 启动web ui管理界面,默认端口:8500 须开放出来。

-node 节点名称,集群中唯一

-client='0.0.0.0' 将绑定客户端地址,0.0.0.0表示所有地址都能访问

-join 加入某一集群中

上面命令会启动一个Consul节点,名称为:Server01,端口已经进行了映射,可通过主机地址:8500 访问web ui管理页面。

组装集群(3个server+2个client)

1、查看刚刚创建的leader节点的信息:

docker exec cs1 consul members

输出:

Node      Address           Status  Type    Build  Protocol  DC   Segment
Server01 192.168.0.2:8301 alive server 1.6.1 2 dc1 <all>

可以看到第一个节点的地址。

2、创建第二个server并加入集群

docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=cs2 --net staticnet --ip 192.168.0.3 consul agent -server -node=Server02 -join='192.168.0.2'

3、创建第三个server并加入集群

docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=cs3 --net staticnet --ip 192.168.0.4  consul agent -server -node=Server03 -join='192.168.0.2'
server加入完成后,在web管理页面就可以看到新增加的节点,以及当前的leader节点。

4、创建client并加入集群

-- client01
docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=CC-ip05 --net staticnet --ip 192.168.0.5 consul agent -node client01 -join='192.168.0.2' -client='0.0.0.0' --client02
docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=CC-ip06 --net staticnet --ip 192.168.0.6 consul agent -node client02 -join='192.168.0.2' -client='0.0.0.0' -- client03
docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=CC-ip07 --net staticnet --ip 192.168.0.7 consul agent -node client03 -join='192.168.0.2' -client='0.0.0.0'

Docker安装Consul集群的更多相关文章

  1. 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现

    庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介      在第七篇文章<庐山真面目之七微服务架构Consul ...

  2. docker安装hadoop集群

    docker安装hadoop集群?图啥呢?不图啥,就是图好玩.本篇博客主要是来教大家如何搭建一个docker的hadoop集群.不要问 为什么我要做这么无聊的事情,答案你也许知道,因为没有女票.... ...

  3. 基于docker安装pxc集群

    基于docker安装pxc集群 一.PXC 集群的安装 PXC集群比较特殊,需要安装在 linux 或 Docker 之上.这里使用 Docker进行安装! Docker的镜像仓库中包含了 PXC数据 ...

  4. vagrant+docker搭建consul集群开发环境

    HashiCorp 公司推出的Consul是一款分布式高可用服务治理与服务配置的工具.关于其配置与使用可以参考这篇文章 consul 简介与配置说明. 一般,我们会在多台主机上安装并启动 consul ...

  5. Docker学习-Docker搭建Consul集群

    1.环境准备 Linux机器三台 网络互通配置可以参考 https://www.cnblogs.com/woxpp/p/11858257.html 192.168.50.21 192.168.50.2 ...

  6. 基于Docker的Consul集群实现服务发现

    服务发现 其实简单说,服务发现就是解耦服务与IP地址之间的硬绑定关系,以典型的集群为例,对于集群来说,是有多个节点的,这些节点对应多个IP(或者同一个IP的不同端口号),集群中不同节点责任是不一样的. ...

  7. Docker部署Consul集群

    服务介绍 Consul是一种分布式.高可用.支持水平扩展的服务注册与发现工具.包含的特性有:服务发现.健康检查.键值存储.多数据中心和服务管理页面等. 官方架构设计图: 图中包含两个Consul数据中 ...

  8. CentOS7安装Consul集群

    1.准备4台服务器 linux1 192.168.56.101 linux2 192.168.56.102 linux3 192.168.56.103 linux4 192.168.56.104 2. ...

  9. 阿里云服务器 CentOS 7.5 64位 docker安装redis集群

    网上有很多教程可以参考,但是遇到坑了...... 最后参考这个教程成功了.https://www.cnblogs.com/hbbbs/articles/10028771.html 安装docker 参 ...

随机推荐

  1. Windows Server 2008 R2(x64) IIS7+PHP5.6.30(FastCGI)环境搭建

    相关软件下载: 1.PHP下载地址: http://windows.php.net/downloads/releases/ 1.安装Microsoft Visual C++ 2012 Redistri ...

  2. Peekaboo(2019年上海网络赛K题+圆上整点)

    目录 题目链接 题意 思路 代码 题目链接 传送门 题意 你的位置在\(O(0,0)\),\(A\)的位置为\((x_1,y_1)\),\(B\)的位置为\((x_2,y_2)\),现在已知\(a=O ...

  3. CentOS7编译安装Keepalived2.0.19

    实验环境:centos7 节点1:10.15.192.21 节点2:10.15.192.22 vip地址:10.15.192.23 1.下载文件 cd /usr/local/src wget http ...

  4. 【Tomcat】系统找不到指定的路径

    确认一下端口防火墙是否开放 没开放就开一下:firewall-cmd --zone=public --add-port=9080/tcp --permanent 然后重启: firewall-cmd ...

  5. Rpm Creating Subpackages

    转自:http://ftp.rpm.org/max-rpm/s1-rpm-subpack-spec-file-changes.html Spec File Changes For Subpackage ...

  6. ESA2GJK1DH1K升级篇: 移植远程更新程序到STM32F103RET6型号的单片机,基于(GPRS模块AT指令TCP透传方式)

    前言 上节实现远程更新是更新的STM32F103C8T6的单片机 GPRS网络(Air202/SIM800)升级STM32: 测试STM32远程乒乓升级,基于(GPRS模块AT指令TCP透传方式),定 ...

  7. monkey--常用参数

    前戏 参数分类:常规类参数,事件类参数,约束类参数,调试类参数 常规类参数:常规类参数包括帮助参数和日志信息参数,帮助参数用于输出monkey命令使用指导,日志信息参数将日志分为三个等级,级别越高,日 ...

  8. 格利文科定理(Glivenko–Cantelli Theorem)

    格利文科定理:每次从总体中随机抽取1个样本,这样抽取很多次后,样本的分布会趋近于总体分布.也可以理解为:从总体中抽取容量为n的样本,样本容量n越大,样本的分布越趋近于总体分布. (注:总体数据需要独立 ...

  9. 【Codeforces】B. Div Times Mod

    B. Div Times Mod time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  10. SQL数据同步到ELK(一)- 日常开篇

    需求 在我们的实际业务中,业务数据大部分是通过传统DB做持久化,但有时会使用Solr/Elastic Search等做搜索.缓存等其他服务,那么如何将数据同步到这些异构的存储系统中呢? 这就是我最近在 ...