Docker 部署 Consul

转载:https://www.jianshu.com/p/df3ef9a4f456

  • docker 拉取 consul 镜像

    docker pull consul
    
  • 启动 server
    启动前, 先建立 /data/consul 文件夹, 保存 consul 的数据

    mkdir -p /data/consul
    
  • 使用 docker run 启动 server

    docker run -d -p 8500:8500 -v /data/consul:/consul/data -e CONSUL_BIND_INTERFACE='eth0' --name=consul1 consul agent -server -bootstrap -ui -client='0.0.0.0'
    

    一般第一个容器的ip地址是 172.17.0.2,可以通过下面的命令查询容器ip:

    docker inspect --format '{{ .NetworkSettings.IPAddress }}' consul1
    
    • agent: 表示启动 agent 进程
    • server: 表示 consul 为 server 模式
    • client: 表示 consul 为 client 模式
    • bootstrap: 表示这个节点是 Server-Leader
    • ui: 启动 Web UI, 默认端口 8500
    • node: 指定节点名称, 集群中节点名称唯一
    • client: 绑定客户端接口地址, 0.0.0.0 表示所有地址都可以访问
  • 往集群插入其他节点

    docker run -d --name=consul2 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=true --client=0.0.0.0 --join 172.17.0.2;
    docker run -d --name=consul3 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=true --client=0.0.0.0 --join 172.17.0.2;
    docker run -d --name=consul4 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=false --client=0.0.0.0 --join 172.17.0.2;
    
    • join: 表示加入到指定集群中
  • 查看日志 docker logs consul1(容器名称)

        

  • 查看集群下面的节点

    docker exec -it consul1 consul members
    
  • 至此 consul 的部署已经完成。

  • 上述只搭建了dc1,下面开始搭建dc2,并将dc1和dc2关联起来

    docker run -d --name=consul5 -e CONSUL_BIND_INTERFACE='eth0' consul agent -server -bootstrap-expect 3 -datacenter=dc2
    
  • 往dc2添加节点

    docker run -d --name=consul6 -e CONSUL_BIND_INTERFACE=eth0 consul agent --datacenter=dc2 --server=true --client=0.0.0.0 --join 172.17.0.6;
    docker run -d --name=consul7 -e CONSUL_BIND_INTERFACE=eth0 consul agent --datacenter=dc2 --server=true --client=0.0.0.0 --join 172.17.0.6;
    docker run -d --name=consul8 -e CONSUL_BIND_INTERFACE=eth0 consul agent --datacenter=dc2 --server=false --client=0.0.0.0 --join 172.17.0.6;
    
  • 关联dc1和dc2

    docker exec -it consul6 consul join -wan 172.17.0.2  
    
  • 至此可以在web ui看到dc1和dc2辣!

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值