【原】docker部署单节点consul

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

1docker run --name consul1 -d -p 5902:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 10.109.30.246:5901/daily_docker/consul:1.4.5 agent -server -bootstrap-expect=1 -ui -bind=0.0.0.0 -client=0.0.0.0 2

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的端口。

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

 

转载于:https://www.cnblogs.com/PearlRan/p/11225953.html

代码交流 2021