使用 docker 快速安装部署 consul 单节点简单集群

使用 docker 快速安装部署 consul 单节点简单集群

解决方案goocz2025-01-21 10:19:4013A+A-

consul 是分布式服务发现和配置工具,广泛应用于微服务架构中,提供了服务注册与发现、健康检查等功能。

本文介绍使用 docker 快速安装 consul 单节点简单集群,可用于实际开发和测试环境部署。

本文默认服务器已安装 docker 环境,如果不太了解 docker 的网友可以查看我之前写的 docker 系列文章,以便更好的理解。

一、下载镜像

查看 consul 镜像,使用命令 docker search consul 可以搜索到目前所有的 consul 镜像,这里只列出了部分:

拉取镜像,默认就拉取 starts 最多版本最新的,使用命令 docker pull consul

使用命令 docker image inspect consul 可查看这个最新版镜像详细信息,如看到 consul 的版本是 1.11.1:

二、启动容器

启动容器前,先创建 consul 数据持久化目录,容器重启或删除数据不会丢失,也方便保存备份和迁移,

mkdir -p /usr/local/docker-study/consul_1.11.1/data

然后启动容器,本次使用单节点的简单集群模式,适用于测试和开发环境,使用如下命令:

docker run --name consul1 -d -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8700:8600 -v /usr/local/docker-study/consul_1.11.1/data consul agent -server -bootstrap-expect=1 -ui -bind=0.0.0.0 -client=0.0.0.0

注:因为8600被其它项目占用了,本次用8700

命令参数说明:

  • --name consul1 指定容器的名称为 consul1
  • -d 容器以“后台模式”运行(Detached Mode)
  • -p 用于映射主机和容器的端口,格式为 主机端口:容器端口8500:8500:Consul 的 HTTP API,用于访问 Consul Web UI 和 REST API8300:8300:集群服务器通信端口,Server 节点之间通过此端口进行 Raft 协议通信8301:8301:局域网(LAN)中节点之间的 Gossip 通信端口8302:8302:广域网(WAN)中节点之间的 Gossip 通信端口8700:8600:DNS 查询端口(UDP),容器中默认是 8600,映射到主机的 8700
  • -v /usr/local/docker-study/consul_1.11.1/data 挂载本地数据卷
  • consul 指定使用的镜像名称,即 consul
  • agent 启动 Consul 的代理模式(Agent Mode)
  • -server 指定此节点为 Server 节点
  • -bootstrap-expect=1 指定集群的 Server 节点数量
  • -ui 启用 Consul 的 Web UI
  • -bind=0.0.0.0 指定绑定的 IP 地址,0.0.0.0 表示绑定到所有可用的网络接口
  • -client=0.0.0.0 指定 HTTP API 和 DNS 服务的监听地址

三、验证

打开网址 http://ip:8500/ 访问 Web UI,本次服务地址是 192.168.1.200 显示如下:

说明启动成功了。

也可以通过 API 验证,使用 curl 命令 curl http://ip:8500/v1/status/leader。

点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5