
openiamdocker/consulConsul 是 HashiCorp 开发的开源服务网格解决方案,提供服务发现、配置管理、分布式一致性和服务网格能力。本镜像为官方维护的公共镜像,封装了 Consul 服务端/客户端程序,可快速部署用于构建弹性微服务架构和分布式系统。
bashdocker pull consul
bashdocker run -d \ --name consul-dev \ -p 8500:8500 \ # HTTP API/UI端口 -p 8600:8600/udp \ # DNS端口 consul agent -dev -client=0.0.0.0
说明:
-dev模式为单节点开发环境,数据存储在内存中(重启丢失),-client=0.0.0.0允许外部访问
启动后通过 http://localhost:8500 访问Consul Web管理界面,可查看服务列表、健康状态和KV存储数据。
bashdocker run -d \ --name consul-server \ -p 8300:8300 \ # 服务器内部通信端口 -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/UI端口 -p 8600:8600/udp \ # DNS端口 -v /data/consul:/consul/data \ # 持久化数据卷 consul agent \ -server \ # 以服务器模式启动 -bootstrap-expect=1 \ # 单节点集群(生产建议3-5节点) -data-dir=/consul/data \ # 数据存储目录 -bind=0.0.0.0 \ # 绑定地址(容器内所有网卡) -client=0.0.0.0 \ # 允许外部访问API的客户端地址 -ui # 启用Web UI
bash# 节点1(引导节点) docker run -d \ --name consul-server-1 \ --net=host \ # 使用主机网络(简化节点通信,生产建议自定义网络) -v /data/consul/node1:/consul/data \ consul agent \ -server \ -bootstrap-expect=3 \ -data-dir=/consul/data \ -bind=<节点1IP> \ -client=0.0.0.0 \ -ui # 节点2(加入集群) docker run -d \ --name consul-server-2 \ --net=host \ -v /data/consul/node2:/consul/data \ consul agent \ -server \ -data-dir=/consul/data \ -bind=<节点2IP> \ -client=0.0.0.0 \ -join=<节点1IP> # 节点3(加入集群) docker run -d \ --name consul-server-3 \ --net=host \ -v /data/consul/node3:/consul/data \ consul agent \ -server \ -data-dir=/consul/data \ -bind=<节点3IP> \ -client=0.0.0.0 \ -join=<节点1IP>
yamlversion: '3.8' services: consul: image: consul:latest container_name: consul-server ports: - "8500:8500" # HTTP API/UI - "8600:8600/udp" # DNS - "8300:8300" # Server RPC - "8301:8301/tcp" # Serf LAN (TCP) - "8301:8301/udp" # Serf LAN (UDP) volumes: - consul-data:/consul/data command: agent -server -bootstrap-expect=1 -data-dir=/consul/data -bind=0.0.0.0 -client=0.0.0.0 -ui restart: unless-stopped volumes: consul-data:
| 参数 | 说明 | 示例 |
|---|---|---|
-server | 启用服务器模式(默认客户端模式) | -server |
-client | 允许访问API的客户端地址(默认127.0.0.1) | -client=0.0.0.0 |
-bind | 集群内部通信绑定地址 | -bind=192.168.1.100 |
-data-dir | 持久化数据存储目录 | -data-dir=/consul/data |
-bootstrap-expect | 期望集群服务器节点数(自动引导集群) | -bootstrap-expect=3 |
-join | 加入现有集群的节点地址 | -join=192.168.1.100 |
-ui | 启用内置Web UI | -ui |
-dev | 开发模式(单节点、内存存储) | -dev |
-dev模式:开发模式数据不持久化,且安全机制未启用-v)以防止容器重启后数据丢失-tls-config-file)和ACL访问控制(-acl-file)
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务