本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
HashiCorp Consul 是一款用于在基础设施中发现和配置服务的工具,提供服务发现、配置管理和分段功能,支持多数据中心部署,是微服务架构中的关键组件。
Bitnami HashiCorp Consul 镜像是经过安全加固的容器化发行版,旨在简化 Consul 的部署和管理。该镜像遵循非 root 用户运行原则,提供最小化攻击面,并支持持久化存储、集群部署和灵活配置。
自 2025 年 8 月 28 日起,Bitnami 将调整其公共镜像仓库,推出Bitnami Secure Images(安全镜像) 计划,主要变更包括:
latest 标签),适用于开发环境。2.50.0、10.6)将在两周内迁移至 docker.io/bitnamilegacy 仓库,不再接收更新。更多详情见 Bitnami Secure Images 公告。
推荐从 Docker Hub 拉取最新版安全镜像:
docker pull bitnami/consul:latest
如需特定版本,可指定标签(注意:2025 年 8 月后非 latest 标签将迁移至 bitnamilegacy 仓库):
docker pull bitnami/consul:[TAG] # 例如 bitnami/consul:1.16.0
从源码构建(需替换 APP、VERSION、OPERATING-SYSTEM 占位符):
git clone [***] cd bitnami/APP/VERSION/OPERATING-SYSTEM docker build -t bitnami/consul:latest .
使用 docker run 快速启动单节点 Consul:
docker run --name consul -p 8500:8500 bitnami/consul:latest
访问 http://localhost:8500 即可打开 Consul UI。
Consul 数据(配置、状态、Raft 日志)默认存储在 /bitnami,需挂载卷以避免容器删除后数据丢失:
docker run -v /本地路径/consul-data:/bitnami bitnami/consul:latest
version: '2' services: consul: image: bitnami/consul:latest volumes: - /本地路径/consul-data:/bitnami # 本地目录挂载 # 或使用命名卷 # volumes: # - consul-data:/bitnami volumes: consul-data: driver: local
注意:挂载的本地目录需确保 UID 1001 有读写权限,可通过
chown -R 1001:1001 /本地路径/consul-data调整。
通过 Docker 网络实现容器间通信,容器名作为 hostname。
创建桥接网络:
docker network create consul-network --driver bridge
启动 Consul 节点并加入网络:
docker run --name consul-node1 --network consul-network bitnami/consul:latest
其他容器加入同一网络即可通过 consul-node1 访问 Consul。
自动创建网络并连接服务:
version: '2' networks: consul-network: driver: bridge services: consul: image: bitnami/consul:latest networks: - consul-network ports: # 暴露常用端口 - 8300:8300 # RPC 端口 - 8301:8301/tcp # LAN Serf 端口(TCP) - 8301:8301/udp # LAN Serf 端口(UDP) - 8500:8500 # HTTP API/UI 端口 - 8600:8600/tcp # DNS 端口(TCP) - 8600:8600/udp # DNS 端口(UDP)
通过 Docker Compose 快速搭建 3 节点 Consul 集群(生产环境建议使用 Helm Chart)。
version: '2' services: consul-node1: # 主节点(启用 UI) image: bitnami/consul:latest environment: - CONSUL_BOOTSTRAP_EXPECT=3 # 期望的集群节点数 - CONSUL_CLIENT_LAN_ADDRESS=0.0.0.0 # 客户端绑定地址 - CONSUL_DISABLE_KEYRING_FILE=true # 禁用密钥环文件 - CONSUL_RETRY_JOIN_ADDRESS=consul-node1 # 重试加入的节点地址 - CONSUL_ENABLE_UI=true # 启用 UI ports: - 8300:8300 - 8301:8301/tcp - 8301:8301/udp - 8500:8500 # UI 端口 - 8600:8600/tcp - 8600:8600/udp volumes: - consul-node1-data:/bitnami consul-node2: # 从节点(禁用 UI) image: bitnami/consul:latest environment: - CONSUL_BOOTSTRAP_EXPECT=3 - CONSUL_CLIENT_LAN_ADDRESS=0.0.0.0 - CONSUL_DISABLE_KEYRING_FILE=true - CONSUL_RETRY_JOIN_ADDRESS=consul-node1 # 加入主节点 - CONSUL_ENABLE_UI=false volumes: - consul-node2-data:/bitnami consul-node3: # 从节点(禁用 UI) image: bitnami/consul:latest environment: - CONSUL_BOOTSTRAP_EXPECT=3 - CONSUL_CLIENT_LAN_ADDRESS=0.0.0.0 - CONSUL_DISABLE_KEYRING_FILE=true - CONSUL_RETRY_JOIN_ADDRESS=consul-node1 - CONSUL_ENABLE_UI=false volumes: - consul-node3-data:/bitnami volumes: consul-node1-data: driver: local consul-node2-data: driver: local consul-node3-data: driver: local
启动集群:
docker-compose up -d
| 变量名 | 描述 | 默认值 |
|---|---|---|
CONSUL_RPC_PORT_NUMBER | RPC 端口号 | 8300 |
CONSUL_HTTP_PORT_NUMBER | HTTP API/UI 端口号 | 8500 |
CONSUL_HTTPS_PORT_NUMBER | HTTPS 端口号(-1 表示禁用) | -1 |
CONSUL_DNS_PORT_NUMBER | DNS 端口号 | 8600 |
CONSUL_AGENT_MODE | 代理模式(server 或 client) | server |
CONSUL_DISABLE_KEYRING_FILE | 禁用密钥环文件 | false |
CONSUL_SERF_LAN_ADDRESS | LAN Serf 绑定地址 | 0.0.0.0 |
CONSUL_SERF_LAN_PORT_NUMBER | LAN Serf 端口号 | 8301 |
CONSUL_CLIENT_LAN_ADDRESS | 客户端 HTTP/DNS 绑定地址 | 0.0.0.0 |
CONSUL_RETRY_JOIN_ADDRESS | 集群加入地址(LAN) | 127.0.0.1 |
CONSUL_RETRY_JOIN_WAN_ADDRESS | 跨数据中心加入地址(WAN) | 127.0.0.1 |
CONSUL_BIND_INTERFACE | 绑定网络接口(如 eth0) | nil |
CONSUL_BIND_ADDR | 绑定 IP 地址(覆盖接口配置) | nil |
CONSUL_ENABLE_UI | 启用 UI | true |
CONSUL_BOOTSTRAP_EXPECT | 集群启动期望节点数(仅 server 模式) | 1 |
CONSUL_RAFT_MULTIPLIER | Raft 选举超时乘数 | 1 |
CONSUL_LOCAL_CONFIG | JSON 格式的本地配置(覆盖默认) | nil |
CONSUL_GOSSIP_ENCRYPTION | 是否启用 Gossip 加密(yes/no) | no |
CONSUL_GOSSIP_ENCRYPTION_KEY | Gossip 加密密钥(Base64 编码 16 字节) | nil |
CONSUL_DATACENTER | 数据中心名称 | dc1 |
CONSUL_DOMAIN | DNS 域名 | consul |
CONSUL_NODE_NAME | 节点名称 | nil(自动生成) |
CONSUL_DISABLE_HOST_NODE_ID | 禁用基于主机的节点 ID | true |
| 变量名 | 描述 | 值 |
|---|---|---|
CONSUL_BASE_DIR | 安装目录 | ${BITNAMI_ROOT_DIR}/consul |
CONSUL_CONF_DIR | 配置目录 | ${CONSUL_BASE_DIR}/conf |
CONSUL_CONF_FILE | 主配置文件 | ${CONSUL_CONF_DIR}/consul.json |
CONSUL_DATA_DIR | 数据存储目录 | ${CONSUL_VOLUME_DIR} |
CONSUL_VOLUME_DIR | 持久化卷挂载点 | /bitnami/consul |
使用 CONSUL_LOCAL_CONFIG 传入 JSON 配置,覆盖默认设置:
docker run -e CONSUL_LOCAL_CONFIG='{ "datacenter": "us_west", "server": true, "enable_debug": true }' --name consul bitnami/consul:latest
将自定义配置文件挂载到 /opt/bitnami/consul/conf 目录(容器内路径):
# docker-compose.yml 示例 services: consul: image: bitnami/consul:latest volumes: - ./local/conf:/opt/bitnami/consul/conf # 本地配置目录挂载
配置文件需命名为
.json或.hcl,Consul 会按字母顺序加载所有文件。
Gossip 加密用于保护集群内节点通信,需生成 16 字节 Base64 密钥:
生成密钥:
docker run --rm bitnami/consul:latest consul keygen
输出示例:jH8t9eXz0aB1cD2eF3gH4iJ5kL6mN7oP8qR9sT0uV
启动容器时传入密钥:
docker run -e CONSUL_GOSSIP_ENCRYPTION=yes -e CONSUL_GOSSIP_ENCRYPTION_KEY=jH8t9eXz0aB1cD2eF3gH4iJ5kL6mN7oP8qR9sT0uV --name consul bitnami/consul:latest
Bitnami 安全镜像支持 FIPS 模式,通过环境变量控制:
OPENSSL_FIPS:是否启用 OpenSSL FIPS 模式(yes/no,默认 yes)。容器日志输出到 stdout,可通过 docker logs 查看:
docker logs consul # 查看单个容器日志 docker-compose logs consul # Docker Compose 日志
配置日志驱动(如 JSON 文件、ELK 等):
docker run --log-driver json-file --log-opt max-size=10m --name consul bitnami/consul:latest
拉取最新镜像:
docker pull bitnami/consul:latest
停止并备份当前容器(假设使用卷挂载持久化):
docker stop consul rsync -a /path/to/consul-data /path/to/consul-data.bkp.$(date +%Y%m%d) # 备份数据
删除旧容器并启动新容器:
docker rm consul docker run -v /path/to/consul-data:/bitnami --name consul bitnami/consul:latest
Debian 1.6.1-r6 / Oracle 1.6.1-r7:减小镜像体积,配置逻辑迁移至 Bash 脚本;环境变量重命名(兼容旧变量):
CONSUL_UI → CONSUL_ENABLE_UICONSUL_SERVER_MODE → CONSUL_AGENT_MODECONSUL_RETRY_JOIN → CONSUL_RETRY_JOIN_ADDRESS1.4.0-r16:迁移至非 root 用户(UID 1001),数据目录需确保该用户有读写权限。
推荐使用 Bitnami Helm Chart 部署到 Kubernetes:
helm repo add bitnami [***] helm install my-consul bitnami/consul
详细文档见 Bitnami Consul Helm Chart。

免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429