1 查找consul镜像
2 下载官方consul镜像
sudo docker pull docker.io/consul
3 集群的配置和启动
假设需要部署到一个数据中心的三台机器上,内网IP分别是:
- 主机一:192.168.0.1
- 主机二:192.168.0.2
- 主机三:192.168.0.3
实战结论:云服务器只能绑定内网IP,无法绑定外网IP,但是可以通过外网IP访问到。
3.1 在主机上创建数据和配置文件存放的目录
mkdir -p /data/consul_data/data
mkdir -p /data/consul_data/conf
3.2 启动任意一个consul服务并作为leader
sudo docker run —net=host —name consul -v /data/consul_data/data:/consul/data -v /data/consul_data/conf:/consul/config -d docker.io/consul consul agent -server -bind=192.168.0.1 -bootstrap-expect=3 -data-dir /consul/data -config-dir /consul/config
指令解释
—net=host :
采用主机网络配置,若采用默认的bridge模式,则会存在容器跨主机间通信失败的问题
-v /data/consul_data/data:/consul/data :
主机的数据目录挂载到容器的/consul/data下,因为该容器默认的数据写入位置即是/consul/data
-server -bind:192.168.0.1:
consul以server模式启动,并绑定到主机IP 192.168.0.1 上
-bootstrap-expect=3:
server要想启动,需要至少3个server
-data-dir /consul/data:
指定容器内consul的数据目录
3.3 其余主机加入leader集群
sudo docker run —net=host —name consul -v /data/consul_data/data:/consul/data -v /data/consul_data/conf:/consul/config -d docker.io/consul consul agent -server -bind=192.168.0.3 -bootstrap-expect=3 -data-dir /consul/data -config-dir /consul/config -join 192.168.0.1
就比上一步多了一个 -join,代表加入ip为xxx的集群中
4 检查集群状态
4.1 命令行模式进入容器
sudo docker exec -it 容器id /bin/sh
4.2 查看集群信息
4.3 查看当前节点信息
比如是否是leader等:consul info
