本文要有docker支持,docker的安装使用Docker 在Linux-CentOS上的安装使用_XiaoGuaiSs的博客-CSDN博客如果提示 [Warning] IPv4 forwarding is disabled. Networking will not work.然后将项目拷贝至linux 的project目录下(随意)。生成项目镜像,docker build -t 镜像名称 -f dockerfile文件目录 项目目录。右键点击netcore项目-添加-Docker支持,选择Linux。直接Ctrl+c停止,然后执行启动ipv4命令。然后通过ip加端口访问下接口或页面。再重新执行构建镜像,显示成功。启动镜像,获得容器实例。https://blog.csdn.net/m0_37894611/article/details/130404139?spm=1001.2014.3001.5501Consul有Server和Client两种运行模式
Server构建
启动Consul容器node1
docker run -d --name=node1 --restart=always \
-e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' \
-p 8300:8300 \
-p 8301:8301 \
-p 8301:8301/udp \
-p 8302:8302/udp \
-p 8302:8302 \
-p 8400:8400 \
-p 8500:8500 \
-p 8600:8600 \
-h node1 \
consul agent -server -bind=0.0.0.0 -bootstrap-expect=3 -node=node1 \
-data-dir=/tmp/data-dir -client 0.0.0.0 -ui
去访问下Consul http:ip:8500
这是里面没有东西,会报500,查看下当前节点信息
docker exec -t node1 consul members ##查看节点
我们再继续添加 consul容器node2、node3,注意改成自己的IP 172.17.0.2,我使用了Linux本地的ip不知道为什么绑定不到一起,就是用了nide1给的ip地址,尝试是成功的,不知道是否会有影响
docker run -d --name=node2 --restart=always \
-e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' \
-p 9300:8300 \
-p 9301:8301 \
-p 9301:8301/udp \
-p 9302:8302/udp \
-p 9302:8302 \
-p 9400:8400 \
-p 9500:8500 \
-p 9600:8600 \
-h node2 \
consul agent -server -bind=0.0.0.0 \
-join=172.17.0.2 -node-id=$(uuidgen | awk '{print tolower($0)}') \
-node=node2 \
-data-dir=/tmp/data-dir -client 0.0.0.0 -ui
docker run -d --name=node3 --restart=always \
-e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' \
-p 10300:8300 \
-p 10301:8301 \
-p 10301:8301/udp \
-p 10302:8302/udp \
-p 10302:8302 \
-p 10400:8400 \
-p 10500:8500 \
-p 10600:8600 \
-h node3 \
consul agent -server -bind=0.0.0.0 \
-join=172.17.0.2 -node-id=$(uuidgen | awk '{print tolower($0)}') \
-node=node3 \
-data-dir=/tmp/data-dir -client 0.0.0.0 -ui
此时再去查看节点
再去浏览器看一下Consul
可以通过命令查看主从信息,看看当前谁是Leader,谁是follower
docker exec -t node1 consul operator raft list-peers ##查看主从信息
Client构建
node4、node5
docker run -d --name=node4 --restart=always \
-e 'CONSUL_LOCAL_CONFIG={"leave_on_terminate": true}' \
-p 11300:8300 \
-p 11301:8301 \
-p 11301:8301/udp \
-p 11302:8302/udp \
-p 11302:8302 \
-p 11400:8400 \
-p 11500:8500 \
-p 11600:8600 \
-h node4 \
consul agent -bind=0.0.0.0 -retry-join=172.17.0.2 \
-node-id=$(uuidgen | awk '{print tolower($0)}') \
-node=node4 -client 0.0.0.0 -ui
docker run -d --name=node5 --restart=always \
-e 'CONSUL_LOCAL_CONFIG={"leave_on_terminate": true}' \
-p 12300:8300 \
-p 12301:8301 \
-p 12301:8301/udp \
-p 12302:8302/udp \
-p 12302:8302 \
-p 12400:8400 \
-p 12500:8500 \
-p 12600:8600 \
-h node5 \
consul agent -bind=0.0.0.0 -retry-join=172.17.0.2 \
-node-id=$(uuidgen | awk '{print tolower($0)}') \
-node=node5 -client 0.0.0.0 -ui
再次看看节点信息,可以看到已经有三个Server和两个Client
界面商业展示出五个node
服务注册与发现在项目上的使用与另一篇文章一致
服务注册与发现-Consul(Window)_XiaoGuaiSs的博客-CSDN博客Install | Consul | HashiCorp DeveloperExplore Consul product documentation, tutorials, and examples.https://developer.hashicorp.com/consul/downloadshttps://blog.csdn.net/m0_37894611/article/details/130349754?spm=1001.2014.3001.5501