Consul是HashiCorp开发的开源工具,提供服务发现、配置管理和分布式一致性能力。本Docker镜像封装了Consul服务,旨在为容器化环境提供轻量级、可移植的部署方案,简化Consul在开发、测试和生产环境中的配置与运行流程,适用于各类分布式系统的服务协调场景。
开发模式下,Consul以单节点模式运行,自动生成配置,无需持久化存储,适合本地开发测试:
bashdocker run -d \ --name consul-dev \ -p 8500:8500 \ # HTTP API端口(Web UI访问端口) -p 8600:8600/udp # DNS服务端口 noenv/consul agent -dev -client=0.0.0.0
访问 http://localhost:8500 可打开Consul Web UI,查看服务状态和配置信息。
生产环境需部署多节点集群以保证高可用(建议至少3个服务器节点),以下为单服务器节点启动示例(实际部署需调整节点数量):
bashdocker run -d \ --name consul-server \ -v /host/path/consul/data:/consul/data \ # 挂载数据目录,持久化集群数据 -e CONSUL_BIND_INTERFACE=eth0 \ # 绑定主机网络接口(根据实际网络环境调整) -p 8300:8300 \ # 服务器间RPC端口 -p 8301:8301/tcp \ # Serf LAN端口(TCP) -p 8301:8301/udp \ # Serf LAN端口(UDP) -p 8302:8302/tcp \ # Serf WAN端口(TCP,多数据中心时使用) -p 8302:8302/udp \ # Serf WAN端口(UDP,多数据中心时使用) -p 8500:8500 \ # HTTP API端口 -p 8600:8600/udp # DNS服务端口 noenv/consul agent -server \ -bootstrap-expect=3 \ # 期望的服务器节点总数(集群初始化时需指定) -data-dir=/consul/data \ # 数据持久化目录 -client=0.0.0.0 \ # 允许外部访问HTTP API -ui # 启用内置Web UI
客户端节点用于转发服务请求至服务器集群,扩展服务发现能力,适合部署在应用所在节点:
bashdocker run -d \ --name consul-client \ -e CONSUL_BIND_INTERFACE=eth0 \ noenv/consul agent \ -client=0.0.0.0 \ -join=<server-ip> # 加入服务器集群(替换为实际服务器节点IP,多个节点用逗号分隔)
| 环境变量 | 说明 | 默认值 |
|---|---|---|
CONSUL_BIND_INTERFACE | 服务绑定的网络接口(如eth0) | - |
CONSUL_CLIENT_INTERFACE | 客户端API绑定的网络接口 | - |
CONSUL_DATA_DIR | 数据持久化目录路径 | /consul/data |
CONSUL_LOG_LEVEL | 日志级别(trace/debug/info/warn/err) | info |
| 参数 | 说明 | 示例 |
|---|---|---|
-agent | 以代理模式运行(默认模式) | agent |
-server | 以服务器模式运行(集群核心节点) | agent -server |
-dev | 启用开发模式(单节点,非持久化) | agent -dev |
-client | 客户端API监听地址(允许外部访问需设为0.0.0.0) | -client=0.0.0.0 |
-data-dir | 数据持久化目录 | -data-dir=/consul/data |
-join | 加入现有集群(指定服务器节点IP) | -join=192.168.1.100,192.168.1.101 |
-bootstrap-expect | 集群初始化时期望的服务器节点数(仅服务器节点使用) | -bootstrap-expect=3 |
-ui | 启用内置Web UI | agent -ui |
生产环境必须挂载数据目录以防止容器重启导致数据丢失(服务器节点核心数据包括集群状态、服务注册信息等):
bashdocker run -d \ --name consul-server \ -v /host/path/consul/data:/consul/data \ # 主机目录需提前创建并授权 noenv/consul agent -server -data-dir=/consul/data ...
可通过Docker健康检查监控Consul服务状态,自动重启异常容器:
bashdocker run -d \ --name consul \ --health-cmd "curl -f http://localhost:8500/v1/status/leader || exit 1" \ # 检查leader节点是否存在 --health-interval 10s \ # 检查间隔 --health-timeout 5s \ # 检查超时时间 --health-retries 3 \ # 连续失败次数达到阈值后标记为不健康 noenv/consul agent -dev -client=0.0.0.0

来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429