docker下部署单节点的consul,最重要的是在run consul时,配置-bootstrap-expect=1

docker run --name consul1 -d -p : -p : -p : -p : -p : 10.109.30.246:/daily_docker/consul:1.4. agent -server -bootstrap-expect= -ui -bind=0.0.0.0 -client=0.0.0.0

consul agent 命令的常用选项,如下:

    • -data-dir

      • 作用:指定agent储存状态的数据目录
      • 这是所有agent都必须的
      • 对于server尤其重要,因为他们必须持久化集群的状态
    • -config-dir 
      • 作用:指定service的配置文件和检查定义所在的位置
      • 通常会指定为”某一个路径/consul.d”(通常情况下,.d表示一系列配置文件存放的目录)
    • -config-file 
      • 作用:指定一个要装载的配置文件
      • 该选项可以配置多次,进而配置多个配置文件(后边的会合并前边的,相同的值覆盖)
    • -dev 
      • 作用:创建一个开发环境下的server节点
      • 该参数配置下,不会有任何持久化操作,即不会有任何数据写入到磁盘
      • 这种模式不能用于生产环境(因为第二条)
    • -bootstrap-expect 
      • 作用:该命令通知consul server我们现在准备加入的server节点个数,该参数是为了延迟日志复制的启动直到我们指定数量的server节点成功的加入后启动。
    • -node 
      • 作用:指定节点在集群中的名称
      • 该名称在集群中必须是唯一的(默认采用机器的host)
      • 推荐:直接采用机器的IP
    • -bind 
      • 作用:指明节点的IP地址
      • 有时候不指定绑定IP,会报Failed to get advertise address: Multiple private IPs found. Please configure one. 的异常
    • -server 
      • 作用:指定节点为server
      • 每个数据中心(DC)的server数推荐至少为1,至多为5
      • 所有的server都采用raft一致性算法来确保事务的一致性和线性化,事务修改了集群的状态,且集群的状态保存在每一台server上保证可用性
      • server也是与其他DC交互的门面(gateway)
    • -client 
      • 作用:指定节点为client,指定客户端接口的绑定地址,包括:HTTP、DNS、RPC
      • 默认是127.0.0.1,只允许回环接口访问
      • 若不指定为-server,其实就是-client
    • -join 
      • 作用:将节点加入到集群
    • -datacenter(老版本叫-dc,-dc已经失效) 
      • 作用:指定机器加入到哪一个数据中心中

10.109.30.246:5901/daily_docker/consul:1.4.5是本地的docker镜像源,run时会从源仓库拉取镜像启动

注:5902的端口映射是因为防火墙问题,防火墙的策略只暴露5900-XXXX的端口。

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' consul1 //获取容器IP

最新文章

  1. 共享内存同行,王明学learn
  2. free命令查看内存使用情况(转载)
  3. [wikioi 1307][poj 2054]欧少堆(乱搞)
  4. Selenium2学习-023-WebUI自动化实战实例-021-获取浏览器显示区域大小,通过 WebDriver 截图功能
  5. java静态代码块 类加载顺序问题。
  6. 多线程09-Lock和Condition
  7. Delphi反射
  8. Android中倒计时代码
  9. 解决vs2013下创建的python文件,到其他平台(如linux)下中文乱码(或运行时报SyntaxError: (unicode error) 'utf-8' codec can't decode byte...)
  10. 为什么很多人使用#define而不是const定义常量
  11. 201521123026 《Java程序设计》第5周学习总结
  12. Hashtable 为什么不叫 HashTable?
  13. Linux运行时I/O设备的电源管理框架【转】
  14. MongoDB 常用的几大GUI工具
  15. ajax上传文件及进度显示
  16. POJ 2352 数星星
  17. datetime is not json serializable
  18. HandlerMapping和HandlerAdapter配置须知
  19. 通过ip查找能应机器的MAC
  20. 年末福利,C/S应用升级更新完整解决方案放送

热门文章

  1. LINUX下QT FOR ARM开发环境搭建过程 (使用qt-x11-opensource-src-4.5.2.tar.gz进行编译)
  2. SYN591-B型 转速表
  3. # 构建以及运行Springboot Docker镜像时的变量传递
  4. Centos7离线安装mysql8
  5. angular2最详细的开发环境搭建过程
  6. 【java自定义注解2】java自定义注解结合Spring AOP
  7. Python基础(八) 模块的引入与定义
  8. 监控redis的操作命令
  9. OSI参考模型---网络基础篇(1)
  10. 吐槽:那些Java设计中不得不说的槽点