
该项目是Consul的Docker容器实现,是一个经过预配置的Consul Agent,专门为Docker生态系统设计,具有轻量级特性(基于Busybox,虚拟大小仅50MB),可通过Docker Index获取和部署。
-ui-dir标志可启用Consul Web管理界面check-http和check-cmd工具,支持容器化应用健康检查cmd:run命令自动生成生产环境部署命令通过Docker Index获取镜像:
bash$ docker pull progrium/consul
启动单节点Consul Agent(服务器模式,自动引导):
bash$ docker run -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 progrium/consul -server -bootstrap
启用Web UI(访问http://localhost:8500/ui):
bash$ docker run -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 progrium/consul -server -bootstrap -ui-dir /ui
交互方式:
curl localhost:8500/v1/catalog/nodesdig @0.0.0.0 -p 8600 node1.node.consulconsul members部署3节点服务器集群,测试集群动态特性:
启动第一个节点(设置期望3个节点,等待集群引导):
bash$ docker run -d --name node1 -h node1 progrium/consul -server -bootstrap-expect 3
获取第一个节点的内部IP:
bash$ JOIN_IP="$(docker inspect -f '{{.NetworkSettings.IPAddress}}' node1)"
启动第二个节点并加入集群:
bash$ docker run -d --name node2 -h node2 progrium/consul -server -join $JOIN_IP
启动第三个节点完成集群:
bash$ docker run -d --name node3 -h node3 progrium/consul -server -join $JOIN_IP
启动客户端节点(代理请求,不参与共识,暴露端口供外部访问):
bash$ docker run -d -p 8400:8400 -p 8500:8500 -p 8600:53/udp --name node4 -h node4 progrium/consul -join $JOIN_IP
在多主机私有网络中部署生产级集群,需注意:
-advertise指定私有IP/data卷用于数据持久化节点1(私有IP:10.0.1.1):
bash$ docker run -d -h node1 -v /mnt:/data \ -p 10.0.1.1:8300:8300 \ -p 10.0.1.1:8301:8301 \ -p 10.0.1.1:8301:8301/udp \ -p 10.0.1.1:8302:8302 \ -p 10.0.1.1:8302:8302/udp \ -p 10.0.1.1:8400:8400 \ -p 10.0.1.1:8500:8500 \ -p 172.17.42.1:53:53/udp \ progrium/consul -server -advertise 10.0.1.1 -bootstrap-expect 3
节点2(私有IP:10.0.1.2):
bash$ docker run -d -h node2 -v /mnt:/data \ -p 10.0.1.2:8300:8300 \ -p 10.0.1.2:8301:8301 \ -p 10.0.1.2:8301:8301/udp \ -p 10.0.1.2:8302:8302 \ -p 10.0.1.2:8302:8302/udp \ -p 10.0.1.2:8400:8400 \ -p 10.0.1.2:8500:8500 \ -p 172.17.42.1:53:53/udp \ progrium/consul -server -advertise 10.0.1.2 -join 10.0.1.1
节点3(私有IP:10.0.1.3):
bash$ docker run -d -h node3 -v /mnt:/data \ -p 10.0.1.3:8300:8300 \ -p 10.0.1.3:8301:8301 \ -p 10.0.1.3:8301:8301/udp \ -p 10.0.1.3:8302:8302 \ -p 10.0.1.3:8302:8302/udp \ -p 10.0.1.3:8400:8400 \ -p 10.0.1.3:8500:8500 \ -p 172.17.42.1:53:53/udp \ progrium/consul -server -advertise 10.0.1.3 -join 10.0.1.1
自动生成生产环境部署命令,格式:cmd:run <advertise-ip>[::<join-ip>[::client]] [docker-run-args...]
生成引导节点命令:
bash$ docker run --rm progrium/consul cmd:run 10.0.1.1 -d
生成加入节点命令:
bash$ docker run --rm progrium/consul cmd:run 10.0.1.1::10.0.1.2 -d -v /mnt:/data
生成客户端节点命令:
bash$ docker run --rm progrium/consul cmd:run 10.0.1.4::10.0.1.2::client -d
需挂载主机Docker socket:-v /var/run/docker.sock:/var/run/docker.sock
check-http
对容器内服务执行HTTP健康检查:
bashcheck-http <container-id> <port> <path> [curl-args...]
示例:check-http myapp 8080 /health --retry 3
check-cmd
在临时容器中执行命令检查:
bashcheck-cmd <container-id> <port> <command...>
示例:check-cmd mydb 5432 "pg_isready -U postgres"
将Consul DNS服务集成到Docker环境:
Ubuntu系统配置:
bash$ echo "DOCKER_OPTS='--dns 172.17.42.1 --dns 8.8.8.8 --dns-search service.consul'" >> /etc/default/docker
boot2docker (OS X)配置:
bash$ boot2docker ssh sudo "ash -c \"echo EXTRA_ARGS=\'--dns 172.17.42.1 --dns $(scutil --dns | awk -F ': ' '/nameserver/{print $2}' | head -1) --dns-search service.consul\' > /var/lib/boot2docker/profile\""
测试DNS解析:
bash$ docker run --rm aanand/docker-dnsutils dig -t SRV consul +search
推荐通过HTTP API动态配置服务和检查。如需自定义启动配置,可基于此镜像构建新镜像,添加config目录存放JSON配置文件,或通过opkg安装额外包。
快速重启使用相同IP的节点可能导致集群加入失败,这是ARP表缓存问题。解决方法:等待3分钟后重启,或手动重置缓存。
BSD
以下是 progrium/consul 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务