dockercompose设置系统环境变量(使用docker compose搭建consul集群环境的例子)
类别:服务器 浏览量:1141
时间:2021-10-08 00:53:50 dockercompose设置系统环境变量
使用docker compose搭建consul集群环境的例子consul基本概念server模式和client模式
server模式和client模式是consul节点的类型;client不是指的用户客户端。
- server模式提供数据持久化功能。
- client模式不提供持久化功能,并且实际上他也不工作,只是把用户客户端的请求转发到server模式的节点。所以可以把client模式的节点想象成LB(load balance),只负责请求转发。
- 通常server模式的节点需要配置成多个例如3个,5个。而client模式节点个数没有限制。
server模式启动的命令行参数
- -server:表示当前使用的server模式;如果没有指定,则表示是client模式。
- -node:指定当前节点在集群中的名称。
- -config-dir:指定配置文件路径,定义服务的;路径下面的所有.json结尾的文件都被访问;缺省值为:/consul/config。
- -data-dir: consul存储数据的目录;缺省值为:/consul/data。
- -datacenter:数据中心名称,缺省值为dc1。
- -ui:使用consul自带的web UI界面 。
- -join:加入到已有的集群中。
- -enable-script-checks: 检查服务是否处于活动状态,类似开启心跳。
- -bind: 绑定服务器的ip地址。
- -client: 客户端可访问ip,缺省值为:“127.0.0.1”,即仅允许环回连接。
- -bootstrap-expect:在一个datacenter中期望的server节点数目,consul启动时会一直等待直到达到这个数目的server才会引导整个集群。这个参数的值在同一个datacenter的所有server节点上必须保持一致。
这里说明一下,另外一个参数-bootstrap,用来控制一个server是否运行在bootstrap模式:当一个server处于bootstrap模式时,它可以选举自己为leader;注意在一个datacenter中只能有一个server处于bootstrap模式。所以这个参数一般只能用在只有一个server的开发环境中,在有多个server的cluster产品环境中,不能使用这个参数,否则如果多个server都标记自己为leader那么会导致数据不一致。另外该标记不能和-bootstrap-expect同时指定。
使用docker-compose来搭建如下的consul集群环境
- 集群包含三个server:node1, node2, node3
- 集群包含一个client:node4;并且在client上提供web UI访问服务。.
编辑docker-compose.yml文件
version: '2' networks: byfn: services: consul1: image: consul container_name: node1 command: agent -server -bootstrap-expect=3 -node=node1 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1 networks: - byfn consul2: image: consul container_name: node2 command: agent -server -retry-join=node1 -node=node2 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1 depends_on: - consul1 networks: - byfn consul3: image: consul container_name: node3 command: agent -server -retry-join=node1 -node=node3 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1 depends_on: - consul1 networks: - byfn consul4: image: consul container_name: node4 command: agent -retry-join=node1 -node=ndoe4 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1 -ui ports: - 8500:8500 depends_on: - consul2 - consul3 networks: - byfn
启动服务
$ docker-compose up $ docker exec -t node1 consul members Node Address Status Type Build Protocol DC Segment node1 172.21.0.2:8301 alive server 1.4.0 2 dc1 <all> node2 172.21.0.4:8301 alive server 1.4.0 2 dc1 <all> node3 172.21.0.3:8301 alive server 1.4.0 2 dc1 <all> ndoe4 172.21.0.5:8301 alive client 1.4.0 2 dc1 <default>
访问http://127.0.0.1:8500
注册配置中心例子
spring: application: name: cloud-payment-service ####consul注册中心地址 cloud: consul: enabled: true host: 127.0.0.1 port: 8500 discovery: hostname: 127.0.0.1 prefer-ip-address: true service-name: ${spring.application.name} #healthCheckInterval: 15s instance-id: ${spring.application.name}-8002 enabled: true
KV访问的例子
$ docker exec -t node4 consul kv put foo "Hello foo" $ docker exec -t node4 consul kv put foo/foo1 "Hello foo1" $ docker exec -t node4 consul kv put foo/foo2 "Hello foo2" $ docker exec -t node4 consul kv put foo/foo21 "Hello foo21" $ docker exec -t node4 consul kv get foo Hello foo $ docker exec -t node4 consul kv get -detailed foo/foo1 CreateIndex 124 Flags 0 Key foo/foo1 LockIndex 0 ModifyIndex 124 Session - Value Hello foo1 $ docker exec -t node4 consul kv get -keys -separator="" foo foo foo/foo1 foo/foo2 foo/foo2/foo21 $ docker exec -t node4 consul kv get not-a-real-key Error! No key exists at: not-a-real-key
以上就是使用docker compose搭建consul集群环境的详细内容,更多关于docker compose集群环境的资料请关注开心学习网其它相关文章!
您可能感兴趣
- docker时区问题和迁移数据问题(docker时区问题和迁移数据问题)
- docker主机路径与容器路径(Docker容器没有权限写入宿主机目录的解决方案)
- 运行docker时提示端口已被占用(docker 突然不能被外网访问的解决方案)
- docker compose使用方法(docker和docker-compose一键安装教程支持在线和离线)
- idea docker使用(最新IDEA快速实现Docker镜像部署运行的过程详解)
- 实战部署nginxdocker(基于Docker、Nginx和Jenkins实现前端自动化部署)
- docker镜像如何打包(Docker打包镜像及修改配置的实现)
- dockerfile映射目录(Dockerfile中ENTRYPOINT 和 CMD的区别说明)
- dockernginx服务器教程(Docker镜像+nginx 部署 vue 项目的方法)
- docker-compose 开发代码(Docker Compose多容器部署的实现)
- docker镜像无法删除 Error:No such image:xxxxxx解决(docker镜像无法删除 Error:No such image:xxxxxx解决)
- docker1.12.5容器假死(解决docker run后容器出现Exited 0情况的问题)
- docker 构建整个环境(Docker如何快速搭建LNMP环境最新)
- 五分钟学会docker镜像与容器操作(Docker如何制作自己镜像并上传dockerhub)
- 修改docker镜像的环境变量(解决docker加载新的镜像后repository和tag名称都为none的问题)
- idea 远程部署docker(IDEA使用Docker插件菜鸟教程)
- 《道德经》 人生避开骄狂,才能免去祸患(道德经人生避开骄狂)
- 郭麒麟(郭麒麟)
- 古人十句 戒骄 名言,醍醐灌顶,受益匪浅(古人十句戒骄名言)
- 《道德经》:功成不局,泰而不骄(道德经:功成不局)
- 每日一典 过江之鲫(每日一典过江之鲫)
- 红色代表什么(红色代表什么意义和象征)
热门推荐
- html5 web技术(html5视频常用API接口的实战示例)
- set statistics profile on的用法
- mysql 命令与sqlserver的区别大么(MySQL系列之执行SQL 语句时发生了什么?)
- sql server go语句
- 织梦源码安装数据库怎么填(Mysql修改端口号 织梦DedeCMS设置教程)
- python人脸识别实战视频(Python学习笔记之图片人脸检测识别实例教程)
- php逐行读写文件(PHP实现读取文件夹及批量重命名文件操作示例)
- 前端表单验证(AmazeUI的JS表单验证框架实战示例分享)
- 静态web服务器nginx(WEB服务器该选择 Apache 还是 Nginx?)
- css怎么设计文字阴影(css实现动态阴影、蚀刻文本、渐变文本效果)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9