Docker部署Consul(一)

介绍

该系列文章会出十期,总结自己学习Consul以及在项目中Consul的应用,该系列已实战为主,中间会介绍项目中使用的技术栈及技术要点,希望能够帮助到大家,中间出现的错误欢迎大家指正。

准备开发环境

  • 阿里云服务器,操作系统Centos6.5
  • 默认你本地环境已经部署Docker服务
  • Consul镜像使用Docker服务中提供的最新版本(latest)

操作步骤

Docker pull Consul镜像
docker pull consul
Using default tag: 1.8.4
latest: Pulling from library/consul
Digest: sha256:36fd1f8ca4d702c7dce0d58662893245ff417c863ba38226e73be7f722d0efcb
Status: Image is up to date for consul:latest
docker.io/library/consul:1.8.4

先启动一个单机版Consul服务,启动一个命名为 consul_server_1 的 Docker 容器来运行 Consul ,启动的 Consul 的版本是 1.8.4CONSUL_BIND_INTERFACE 设置为默认桥接网络 eth0 并且主机上不显示任何服务

$ docker run -d -p 8500:8500 -v /data/consul:/consul/data -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_1 consul:1.8.4 agent -server -bootstrap -ui -node=1 -client='0.0.0.0'
  9e86237f42d3c2cefab5de0dc9888d2bd4ed3e7a1aa2ca8e1ebc54cef9ea47b7

提示:/consul/data是 Consul 持久化地方,如果需要持久化那 Dooker 启动时候需要给它指定一个数据卷 -v /data/consul:/consul/data;

Consul 命令简单介绍
  • agent : 表示启动 Agent 进程。
  • server:表示启动 Consul Server 模式。
  • client:表示启动 Consul Cilent 模式。
  • bootstrap:表示这个节点是 Server-Leader ,每个数据中心只能运行一台服务器。技术角度上讲 Leader 是通过 Raft 算法选举的,但是集群第一次启动时需要一个引导 Leader,在引导群集后,建议不要使用此标志。
  • ui:表示启动 Web UI 管理器,默认开放端口 8500,所以上面使用 Docker 命令把 8500 端口对外开放。
  • node:节点的名称,集群中必须是唯一的。
  • client:表示 Consul 将绑定客户端接口的地址,0.0.0.0 表示所有地址都可以访问。
  • join:表示加入到某一个集群中去。 如:-json=192.168.1.23
Consul web管理

上面命令已经启动了 Consul 和 Web 管理器,我们现在打开 Web 管理器来看一下是否启动成功。通过浏览器浏览 Http://{serverIp}:8500

web 管理

上图显示已经启动成功了,启动了一个节点名称为 -node=1 的节点 ,并且可以通过管理器管理 Node 节点、Key/Value 功能等。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。